gpt4 book ai didi

reactjs - 在 useEffect 中 react 钩子(Hook) Prop

转载 作者:行者123 更新时间:2023-12-03 13:16:46 25 4
gpt4 key购买 nike

我已经开始使用 react-hooks 并且有一些东西我想理解。我有这个 useEffect 钩子(Hook),我正在分离我的 useEffect 钩子(Hook),我想知道每个钩子(Hook)何时运行。

function MyComp(props) {
useEffect(
() => {
fetchSomeData(props.filters)
},[props.filters]
)
return (
<div>will show my data here</div>
)
}

此钩子(Hook)仅在 props.filters 更改时运行吗?

或者我是否必须使用 prevProps 来检查它是否已更改?

像这样:

function MyComp(props) {
const prevProps = useRef(props);
useEffect(
() => {
if (prevProps.filters !== props.filters) {
fetchSomeData(props.filters)
}
},[props.filters]
)
return (
<div>will show my data here</div>
)
}

最佳答案

如果 props.filters 的值没有改变,那么 React 将跳过该效果。

// This will only re-run if the value of `props.filters` changes
useEffect(() => {
fetchSomeData(props.filters);
}, [props.filters]);

使用钩子(Hook),React 在内部执行此操作,这与使用 componentDidUpdate 的实现不同,我们必须将 prevPropsnextProps 的值相互比较.

参见optimizing performance by skipping effects .

关于reactjs - 在 useEffect 中 react 钩子(Hook) Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55439651/

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