代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

解密react组件中的export default connect语句

  •  0
  • SkyeBoniwell  · 技术社区  · 6 年前

    我试图找出一个内部的web项目,它使用react、redux和redux saga。

    有一个react组件看起来比项目的其他部分要复杂得多,我就是搞不清到底发生了什么。

    我很难破译 导出默认连接语句 在代码块的底部。

    具体来说,我看到这两个对象/事物作为 车辆类型 组成部分:

    • 反作用
    • OnconfigurePropul公司
    • 燃料类型

    但是我看不到那些在 导出默认连接语句 是的。

    我读了一堆redux文档,但对我来说还是个谜。

    如果有人知道这个代码块中到底发生了什么,你能分享一下吗?

    谢谢!

    class vehicleDisplay extends React.Component {
    
    componentDidMount() {
        this.props.onConfigurePropulsion();
    }
    
    render() {
    
        return (
           <div>
               {fuelType.valueSeq().map(f =>
                 <div>    
                   <VehiclefuelType
                       key={f.id}
                       fuelType={f}
                       reaction={reactions.find(r => r.fuelTypeId === f.id)}
                       onReaction={!fatalReaction ? () => onReaction(f.id) : () => null}
                   />
                </div>
          </div>
        )
    }
    
    export default connect(
        (state, { propulsionId, currentVehicleId }) => ({
            propulsion: state.propulsions.get(propulsionId),
            fuelTypes: state.fuelTypes.filter(f => f.propulsionId === propulsionId),
            reactions: state.reactions.filter(r => r.propulsionId === propulsionId),
        }),
        (dispatch, { propulsionId }) => ({
            onConfigurePropulsion: () => dispatch(Actions.configurePropulsion(propulsionId)),
            onReaction: (fuelTypeId) => dispatch(Actions.saveReaction(propulsionId, alternativeId))
        })
    )(vehicleDisplay)
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   NoxelNyx    6 年前

    connect 接受两个论点, mapStateToProps mapDispatchToProps .它们通常被分离成自己的变量,但是这个人是内联的。这里的第一个参数是从状态检索值并将它们放入组件的 props 是的。第二个是为redux操作设置分派,然后也可以通过 道具 是的。可以找到更多信息 here .