reactjs - ReactJS:无法对未安装的组件执行 React 状态更新
问题描述
我正在尝试在 onClick 方法调用的函数上使用“useHistory”(来自 react-router-dom)推送方法。尽管我在控制台中收到错误消息,但重定向工作正常:
警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 componentWillUnmount 方法中的所有订阅和异步任务。
我的路由在 My App.js 中处理如下:
function App() {
return (
<Container style={{ display: 'flex', flexDirection: 'column' }}>
<Router>
<Row>
<Col>
<div className="tabs">
<Switch>
<Route path='/' exact component={Home} />
<Route path='/staff' component={InsertingStaff} />
<Route path='/students' component={InsertingStudents} />
<Route path='/groups' component={ManageGroups} />
</Switch>
</div>
</Col>
</Row>
</Router>
</Container>
);
}
以及在 onClick 事件后推送到路由器的组件:
function GroupsTree() {
let history = useHistory();
function handleClick(group_item) {
localStorage.setItem('selected_group', JSON.stringify(group_item))
history.push("/groups");
}
const styles = {
lines: {
color: '#0064FF',
height: '40px'
},
node: {
backgroundColor: '#0064FF',
border: '1px solid #1890ff',
},
text: {
color: '#FFFFFF',
}
};
const StyledTree = withStyles(styles)(Tree);
return (
<TransformWrapper doubleClick={{ disabled: true }} options={{ limitToBounds: false, minScale: 0.6 }} defaultScale={1}>
<TransformComponent>
<StyledTree data={data} direction={true} onClick={item => {
handleClick(item);
}}></StyledTree>
</TransformComponent>
</TransformWrapper>
)
}
关于导致错误/警告的原因有什么想法吗?
解决方案
推荐阅读
- python - 错误 - 迭代列表列表
- javascript - 如何使用对象数组一般地创建表格单元格和行
- python - 多索引 Python 中的反连接
- javascript - 从 BrowserWindow 电子类扩展时出错
- javascript - Angular js 到 Angular 5 的迁移
- spring-boot - OAUTH2:从客户端 UI 访问 REST 端点以保护 URI 返回anonymousUser
- semantic-ui - 在 Semantic UI React 中附加到下拉列表的标签和按钮
- linux - 不能 docker pull - 连接被拒绝
- javascript - 登录时url中的问号
- spring - 点燃:选择查询返回null