我想我知道答案,但只是为了确保:
我希望React组件在Redux状态更改为某个条件时调用this.setState()(例如,state.dataLoaded === true).我应该以某种方式使用订阅,或者是太低级别我应该使用连接将状态映射到道具?在这种情况下,我认为这样的事情是可以接受的:
componentWillReceiveProps(nextProps) { if (nextProps.dataLoaded) { this.setState({ dataSource: this.state.dataSource.cloneWithRows(nextProps.posts) }); } }
你肯定应该使用connect来做到这一点.当redux的状态发生变化时,将生成新的props并触发componentWillReceiveProps.
原文链接:https://www.f2er.com/react/443135.htmlclass MyComp extends React.Component { componentWillReceiveProps(nextProps) { if (nextProps.dataLoaded) { this.setState({ dataSource: this.state.dataSource.cloneWithRows(nextProps.posts) }) } } } export default connect( state => ({ dataLoaded: state.someStore.loaded }) )(MyComp)