由于React 16.3已经到来,我正在尝试重构我的代码以使用新的static getDerivedStateFromProps()
,但我这是我目前在componentWillReceiveProps
componentWillReceiveProps(nextProps) {
if (nextProps.chatId !== this.props.chatId)
this.subscribeChatMessages(nextChatId) // a redux-thunk function
}
由于静态函数无法调用this
中的任何内容,我该怎么办?
我可以将redux-thunk函数移动到shouldComponentUpdate
,但这看起来不错吗?
答案 0 :(得分:1)
由于subscribeChatMessages(..)
是具有副作用的redux-thunk-action函数,因此您应该将其放在componentDidUpdate(prevProps, prevState, snapshot)
中。
componentDidUpdate(prevProps) {
if (nextProps.chatId !== this.props.chatId)
this.subscribeChatMessages(nextChatId) // a redux-thunk function
}