【发布时间】:2020-03-20 22:15:15
【问题描述】:
我有一个使用 redux 和 hooks 的 React 无状态组件。我需要在页面加载时显示项目数(useEffect)并在每次添加或删除项目时更新它(store.subscribe)
useEffect(() => {
setState({
items: store.getState().items.length
});
}, []);
store.subscribe(() => {
setState({
items: store.getState().items.length
});
});
但这会导致控制台显示警告无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请在 useEffect 清理函数中取消所有订阅和异步任务。 .
如何从 useEffect 中取消订阅?
【问题讨论】:
标签: javascript reactjs redux react-hooks