reactjs - 重定向后反应状态为空
问题描述
我对 React 和使用 Redirect 非常陌生,我正在尝试使用 React-Router 实现一个简单的两页应用程序。我想知道重定向到组件后如何初始化组件的状态。例如,我有以下从另一个页面重定向到的 View 组件:
class View extends Component {
constructor(props) {
super(props);
this.setState({
name: 'NAME'
});
}
render() {
return (
<div>
<p>Hello {this.state ? this.state.name : 'null'}<p>
</div>
);
}
}
上面的组件null
是从另一个页面渲染重定向到之后渲染<Redirect to="/View">
的。我可能在这里遗漏了一些微妙的东西,但是我将如何正确初始化状态?
解决方案
您不应该调用setState()
构造函数 - 组件在其生命周期的此时尚未安装。例如,参见这个 SO answer。
反而:
constructor(props) {
super(props);
this.state = {
name: 'NAME'
};
}
推荐阅读
- react-native - 底部标签导航中的图标颜色没有改变
- google-apps-script - 在电子邮件中附加两个不同的 pdf
- node.js - 尝试传递由原始电子邮件服务器创建的电子邮件地址时出现 550 错误
- ios - 自定义 Google 登录按钮资产
- pdf - Aspose.PDF for .NET 多重签名 - 除最后一个签名外,所有签名均无效
- python - Python selenium:当元素不存在时使用 while true/false 继续运行脚本
- java - 运行 Spring Boot 项目时,“启动 ApplicationContext 时出错。要显示条件报告,请在启用“调试”的情况下重新运行您的应用程序”
- android-mediaplayer - 使用 Exoplyer 提取媒体元数据
- sql - 通过 VPN 连接的服务器连接的连接字符串
- gdal - 从 gdal_calc.py 获取 4 波段栅格