changeTheme(){
this.setState({darktheme:!this.state.darktheme})
}
render()
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" component={HomeScreen} darkT={this.state.darktheme==true} />
<Stack.Screen name="Settings" component={SettingsScreen} changeTheme={this.changeTheme} darkT={this.state.darktheme==true} />
</Stack.Navigator>
</NavigationContainer>
);
}
在设置页面中。我想使用this.props.changeTheme()
更改主题,应该更改应用程序的状态,整个应用程序将重新呈现。但这不是那样的,主题没有改变。我在这里做什么错了?
当我登录this.props.darkT
时,即使我调用了函数changeTheme()
答案 0 :(得分:0)
您可以尝试以下方法:
<Stack.Screen name="Settings">
{ () => <SettingsScreen darkT={!!this.state.darkTheme} changeTheme={this.changeTheme} /> }
</Stack.Screen>
在“设置”屏幕中,darkT和changeTheme将作为道具提供,因此您可以使用this.props.darkT和this.props.changeTheme
进行访问。