gpt4 book ai didi

reactjs - 钩子(Hook)等同于 componentWilLReceiveProps 来更新状态

转载 作者:行者123 更新时间:2023-12-02 06:47:03 24 4
gpt4 key购买 nike

所以我有一个组件,我有条件地在 props 更改时更新状态。如果当前状态的 CurrentPage 不等于下一个 Prop 的 CurrentPage,我用下一个 Prop 的 CurrentPage 更新状态:

public componentWillReceiveProps(nextProps) {
if (this.state.CurrentPage !== nextProps.CurrentPage) {
this.setState({ CurrentPage: nextProps.CurrentPage });
}
}

我正在重构使用 Hook 的组件。当组件首次加载时,我为 CurrentPage 设置了一个 useState Hook :

const [currentPage, setCurrentPage] = useState(props.CurrentPage ? props.CurrentPage : 1);

在这种情况下,与 componentWillReceiveProps 逻辑等效的 Hook 是什么?谢谢!

最佳答案

为此目的使用“useEffect”钩子(Hook)。

 useEffect(() => {
if(props.yourproperty){
//execute your code.
}
console.log('property changed', props.yourproperty);
},[props.yourproperty])

这只会在 props.yourproperty 更改时调用,因此无需检查旧 Prop 。

UseEffect Hook docs

关于reactjs - 钩子(Hook)等同于 componentWilLReceiveProps 来更新状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56285555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com