react-native - 直接分配给 `this.state` 或在 Dashboard 组件中定义具有所需状态的 `state = {};` 类属性
问题描述
我将字符串值从一个组件类传递到另一个组件类并尝试更新另一个类中的状态
class Dashboard extends Component {
constructor(props) {
super(props);
this.state = {
systemDetailsData: null,
}
}
CalledFromHeader = (systemDetailsData11) => {
this.setState({ systemDetailsData:systemDetailsData11 })
}
}
class Header extends Component {
constructor(props) {
super(props);
Dashboard_Obj = new Dashboard();
}
OnPress = () => {
Dashboard_Obj.CalledFromHeader("system data");
}
}
我收到此错误 ---> 警告:无法在尚未安装的组件上调用 setState。这是一个无操作,但它可能表明您的应用程序中存在错误。相反,在仪表板组件中直接分配this.state
或定义state = {};
具有所需状态的类属性。
我想使用上面的代码更新仪表板类中的状态,谁能帮我实现这一点?
解决方案
在 render 方法中调用Header
组件Dashboard
并将函数作为 prop 传递给Header
组件。
class Dashboard extends Component {
constructor(props) {
super(props);
this.state = {
systemDetailsData: null,
}
}
CalledFromHeader = (systemDetailsData11) => {
this.setState({ systemDetailsData:systemDetailsData11 })
}
redner(){
return <Header changeState={this.CalledFromheader} />
}
}
class Header extends Component {
constructor(props) {
super(props);
}
render(){
return(
// something view onPress handler
<Button onPress={()=>{
this.props.CalledFromHeader('Some parameters')
}} />
)
}
}
推荐阅读
- php - 如何在 Woocommerce 项目中显示变体名称
- c++ - MSVC C6029 警告:可能的缓冲区溢出,使用未经检查的值。检查缓冲区大小时警告不会消失
- angularjs - Firebase SPA 重写规则不重定向到 index.html
- python - Python中的“print(not())”是什么?
- python - 使用 Seaborn 在两个轴图形之一中反转色调顺序
- ruby-on-rails - 缺少属性时的验证错误(未定义的方法 `valid_car_type?' for nil:NilClass)
- java - 使用 JDK 12 和 Maven 构建的自包含 JavaFX 12?
- php - 由于 macOS Mojave 10.14.6 更新为 Safari 12.1.2,我无法再登录 Symfony 4.3 应用程序
- javascript - 将事件监听器添加到 foreach 循环中的每个项目
- python - 在 python 2.7 中获取唯一的机器 ID