Flux / utils:如何在calculateState方法中访问props?

时间:2015-08-30 12:33:44

标签: reactjs reactjs-flux flux

container组件中,如何根据calculateStatethis.props静态方法中从商店获取状态?

1 个答案:

答案 0 :(得分:4)

容器无法访问道具默认情况下 容器无法访问任何道具。这既出于性能原因,又要确保容器可重复使用,并且不必在整个组件树中穿过道具。在某些有效的情况下,您需要根据道具和商店的状态来确定您的州。在那些情况下,传递选项{withProps:true}作为create()的第二个参数。这会将组件props暴露为calculateState()的第二个参数。

  class CounterContainer extends Component {

       static calculateState(prevState,props) {
         return {
           counter: CounterStore.getState(props.id),
        };
      }

        render() {
           return <CounterUI counter={this.state.counter} />;
        }
  }

const container = Container.create(CounterContainer, {withProps:true});