【发布时间】:2019-08-29 12:54:15
【问题描述】:
我正在使用 react native 和 react navigation 进行路由。
如何从另一个组件/页面更新状态?
主屏幕
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 和路由和 sidemenu 配置如下:
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 正在执行但不更新状态。
【问题讨论】:
-
你会在 HomeScreen 中渲染 SideMenuScreen 吗?
-
内容组件中没有侧边菜单
-
那么两个组件之间是没有父子关系的吧?
-
你能检查问题吗。
标签: reactjs react-native react-navigation