2017-03-01 83 views
1

我要实现我的数据流的后续步骤设置状态:终极版 - 通过根据行动

  1. 获取反应路由器
  2. 设置ID作为国家财产的记录ID
  3. 如果此属性设置,所有其它相关组件,与它自己的减速和行动应当根据ID

    componentWillMount() { 
    
        this.props.actions.setItemId(this.props.params.id); 
    
        if(this.props.id){ 
         this.props.fetchItemInformations(this.props.id); 
        } 
    } 
    
获取数据

我知道这个流程不起作用,但我不知道如何实现它。

回答

0

许多方法可以做到这一点,但如果你的问题是由于异步问题,那么你可以使用中间件,如Redux Thunk。这将从根本上让您链你的行动即一旦ID设置,然后派遣另一动作做X.

看到这里 - https://github.com/gaearon/redux-thunk

或者,你可以做你如果componentWillReceiveProps内声明()生命周期事件并检查它是否已设置在那里。如果它然后发送你的下一个动作...

0

如果我理解你的问题的权利,你想从反应路由器(这是一个URL哈希我承担?)获取属性record-id

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

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