我已经开始使用react-hooks
,现在有一些事情我正在努力理解。
我有这个useEffect
钩子,我正在分离我的useEffect
钩子,我想知道每个钩子运行的时间。
function MyComp(props) {
useEffect(
() => {
fetchSomeData(props.filters)
},[props.filters]
)
return (
<div>will show my data here</div>
)
}
只有在 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>
)
}
MyComp
中存在错误。当您使用useRef
时,该值可以通过current
对象访问:例如prevProps.current
。官方文档 - Navid