每当使用反应钩子安装我的组件时,我想获取我的类别useEffect
而不是在每次重新渲染时。但我不断收到此警告React Hook useEffect has a missing dependency:'dispatch'
.
这是我的代码:
const categories = useSelector(state => state.category.categories);
const dispatch = useDispatch();
useEffect(() => {
console.log('effecting');
const fetchCategories = async () => {
console.log('fetching');
try {
const response = await axios.get('/api/v1/categories');
dispatch(initCategory(response.data.data.categories));
} catch (e) {
console.log(e);
}
}
fetchCategories();
}, []);
您可以安全地将调度函数添加到 useEffect 依赖项数组中。如果你查看react-redux文档,特别是hooks部分,他们提到了这个“问题”。
只要相同,调度函数参考就会稳定
store 实例正在传递到 .一般情况下,那家店
实例在应用程序中永远不会改变。
然而,React hooks lint 规则不知道调度应该
是稳定的,并且会警告应该将调度变量添加到
useEffect 和 useCallback 的依赖数组。最简单的解决方案就是这样做:
export const Todos() = () => {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchTodos())
// Safe to add dispatch to the dependencies array
}, [dispatch])
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)