gpt4 book ai didi

javascript - 当特定 props 元素发生更新时,React Hooks 会更新状态元素

转载 作者:行者123 更新时间:2023-12-01 00:46:46 27 4
gpt4 key购买 nike

通常不使用钩子(Hook),我使用 componentWillReceiveProps,但是使用钩子(Hook)我无法使用它们。

如何在更新 prop 时更新状态元素,而不进入无限循环。

我正在尝试类似的事情,但我正在无限循环中进行。

我需要在数据表或页面等更改状态时更新数据表,然后在状态更改且与传递的原始数据不同时仅更新特定项目。

我考虑过这样做,但我不太喜欢它作为解决方案。

    if(datatable !== state.datatable)
setState({ ...state, datatable });

你能给我一些建议吗?

function Datatable({ header, datatable = [], page = 1, perPage = 5, style }) {
const [state, setState] = useState({
datatable,
page: page - 1,
perPage,
numberOfPages: Math.ceil(datatable.length / perPage),
});

useEffect(() => {
setState({ ...state, datatable });
});
....
}

最佳答案

您需要将 datatable 作为依赖项传递给 useEffect Hook ,

useEffect(() => {
setState({ ...state, datatable });
},[datatable]);

现在,仅当 datatable 更改时,您的钩子(Hook)才会执行。

关于javascript - 当特定 props 元素发生更新时,React Hooks 会更新状态元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287749/

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