React/Mobx - 组件正在重新渲染,但未调用componentWillReceiveProps()

Hay*_*yan 6 javascript typescript reactjs mobx mobx-react

我有React/Mobx应用程序.当我在商店中进行更改时,组件正在更新(重新呈现),但我需要进行一些比较以添加更多功能,因此我想使用componentWillReceiveProps(nextProps)并将nextProps与this.props进行比较.不知怎的,它没有被召唤.为了得到那个,任何想法,我做错了什么,或者我还能做些什么?

Chr*_*che 3

tl;dr:使用componentWillUpdatecomponentDidUpdate


作为 prop 传递的对象 Store 永远不会改变,即使它的内容发生变化。使用@observable的技巧是它会在不改变props的情况下触发组件的更新。因此,使用诸如 shouldComponentUpdate、componentWillReceiveProps 和 componentDidReceiveProps 之类的生命周期函数将不起作用,因为它们是在组件的 props 或状态更改时触发的。mobx 文档在shouldComponentUpdate部分对此进行了很好的解释。

因此,要捕获可观察对象中的更新,我们必须更深入地了解生命周期堆栈并使用componentWillUpdatecomponentDidUpdate