【发布时间】:2022-09-23 19:03:32
【问题描述】:
因此,在下面的代码中,我想了解是什么导致组件多次重新渲染。尽管大部分时间这段代码运行没有任何问题,但有时它会导致浏览器变得无响应。
我无法确定导致该问题的原因,并相信重新审视 useEffect 可能是解决它的关键。
因为dispatch, props & addToast依赖于成功,我应该从依赖数组中删除它们并保持成功和错误吗?
有没有办法确定要保留哪些依赖项以及删除哪些依赖项?
useEffect(() => {
if (success) {
dispatch({ type: PRODUCT_RESET });
dispatch(listProducts());
props.onHide();
addToast(\"Product has been added!\", {
appearance: \"success\",
autoDismiss: false,
});
} else if (error) {
addToast(error, { appearance: \"error\", autoDismiss: false });
}
}, [dispatch, success, error, addToast, props]);
-
去掉
props,直接传递onHide。props是每次渲染的新对象。 -
@OriDrori 正在使用 props.onHide() 因为 useEffect 正在模态组件中使用。在组件中解构它之前,我不能删除它,对吗?
-
逐一删除依赖项并知道是哪一个导致了问题,似乎是道具导致了它。
-
@RitikBanger 浏览器在随机时间变得无响应,因此很难一一重现错误。
标签: reactjs react-hooks