如果没有componentWillReceiveProps,应该在哪里反应-thunk func?

时间:2018-03-30 03:27:53

标签: reactjs react-redux redux-thunk

由于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,但这看起来不错吗?

1 个答案:

答案 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 
}