Redux - 通过依赖操作设置状态

时间:2017-03-01 21:00:34

标签: reactjs redux

我想实现数据流的以下顺序:

  1. 获取react-router
  2. 的记录ID
  3. 将此ID设置为州属性
  4. 如果设置了此属性,则所有其他依赖组件及其自己的reducer和actions应根据id获取其数据

    componentWillMount() {
    
        this.props.actions.setItemId(this.props.params.id);
    
        if(this.props.id){
            this.props.fetchItemInformations(this.props.id);
        }
    }
    
  5. 我知道这个流程不起作用,但我不知道如何实现它。

2 个答案:

答案 0 :(得分:0)

许多方法可以做到这一点,但如果您的问题是由异步问题引起的,那么您可以使用Redux Thunk等中间件。这基本上允许你链接你的动作,即一旦设置了id,然后发出另一个动作来做X.

请参阅此处 - https://github.com/gaearon/redux-thunk

或者,您可以在componentWillReceiveProps()生命周期事件中执行if语句,并检查它是否已在那里设置。如果它已经发出你的下一个动作......

答案 1 :(得分:0)

如果我理解你的问题,你想从react-router获取属性record-id(这是我假设的url哈希?)。

您可以直接将此道具传递给所有孩子(作为道具),并根据需要处理孩子的价值。去做这个, 渲染{ this.props.children }时也传递道具;就像是 { React.cloneElement(this.props.children, { record-id: record-id }) }

我说这是最好的做法;如果要将record-id传递给父组件的其他组件(不是直接子组件);您需要触发一个动作并处理动作以更新相关的减速器状态。希望有所帮助。