【发布时间】:2020-04-16 22:40:00
【问题描述】:
我只希望useEffect在我的依赖列表发生变化时运行,每次挂载组件时它也运行,有什么办法在挂载时不触发?
如果某些值,你可以告诉 React 跳过应用效果 重新渲染之间没有变化。
我最初认为这意味着它不应该在后续安装时重新渲染,而是 this question cleared that up.
我在主“页面”(react-router)中显示记录列表,用户可以选择单个记录并转到详细信息页面,然后返回主页面 - 所以主列表组件是在那种情况下完全卸载/安装。每次我加载“母版页”时,我都会看到正在获取的数据,我只希望在其中一个依赖项发生变化时发生这种情况;这些依赖项和数据本身都存储在 Redux 中,因此它们是全局的。
是否可以使 useEffect 或其他挂钩仅在依赖项更改时触发?
const {page, pageSize, search, sorts} = useSelector(getFilters);
const data = useSelector(getData);
useEffect(() => {
console.log("fetching");
dispatch(fetchData(page, pageSize, search, sorts));
}, [page, pageSize, search, sorts]);
【问题讨论】:
标签: reactjs react-redux react-hooks use-effect