在container组件中,如何根据calculateState
在this.props
静态方法中从商店获取状态?
答案 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});