gpt4 book ai didi

reactjs - 如何从其他组件更新状态?

转载 作者:行者123 更新时间:2023-12-03 13:36:55 24 4
gpt4 key购买 nike

我正在使用 native react 和 react 导航进行路由。

如何从另一个组件/页面更新状态?

主屏幕

export class HomeScreen extends Component {
constructor(){
this.state = {
test: ''
}
}

updateState = ()=>{
this.setState({test:'new value'});
}

}



SideMenuScreen
import { HomeScreen } from "./home";

export class SideMenuScreen extends Component {

updateHomeState = ()=>{
let oHome = new HomeScreen();
oHome.updateState();
}

}

我的 App.js 以及路由和侧菜单配置如下:

import { createAppContainer, createDrawerNavigator } from "react-navigation";
import { SideMenuScreen } from "./screens/Sidemenu";
import { HomeScreen } from "./screens/Home";

export default class App extends Component {
render() {
return(
<AppContainer></AppContainer>
);
}
}

const AppNavigator = createDrawerNavigator(
{Home: HomeScreen,
other: otherpage},
{
contentComponent: SideMenuScreen
}
);

const AppContainer = createAppContainer(AppNavigator);

updateState 正在执行但未更新状态。

最佳答案

If you have to update from the child component

您必须从保存状态的组件中传递处理程序来更新值,子组件可以利用这些处理程序来更新状态>状态

If you have to update from some other location

您必须执行 level up 状态并遵循与上面相同的内容。

LevelUpComponent

export class App extends Component {
constructor(){
this.state = {
test: ''
}
}

updateState = (values)=>{
this.setState(values);
}

render(){
return <div>
<HomeScreen></HomeScreen>
<SideMenuScreen updateState={this.updateState}></SideMenuScreen>
</div>
}
}

关于reactjs - 如何从其他组件更新状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55572323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com