【发布时间】:2020-03-02 04:34:43
【问题描述】:
我有一个场景,我们的应用程序有多个位于componentDidUpdate 中的函数。在每个函数中,他们都会检查其特定数据是否已更新。例如:
componentDidUpdate(prevProps) {
this.handleFoo(prevProps)
this.handleMoreFoo(prevProps)
}
handleFoo(prevProps){
if(this.props.foo != prevProps.foo){
//Do Something
}
}
handleMoreFoo(prevProps){
if(this.props.moreFoo != prevProps.moreFoo){
//Do Something
}
}
我一直在查看 useEffect 钩子,想知道我是否可以在每个函数中删除初始检查并利用 useEffect 中的 [] 并且仅在它们的特定键时调用其中一个函数更新如下:
useEffect(() => {
if(fooKey){ handleFoo() }
if(moreFoo) { handleMoreFoo() }
}, [fooKey, moreFooKey])
这可能吗?这是可取的吗?
【问题讨论】:
-
为您之前的每个
handleX()致电useEffect()。钩子的伟大之处在于它们可以彼此独立运行,并且不需要像类组件中的生命周期方法那样共享一个公共入口点。
标签: reactjs react-redux react-hooks use-effect