React Native Navigation 在渲染时传递动态数据
React Native Navigation pass dynamic data when rendering
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
它 returns 即使在我调用函数 changeTheme()
之后也是错误的
你可以试试这个:
<Stack.Screen name="Settings">
{ () => <SettingsScreen darkT={!!this.state.darkTheme} changeTheme={this.changeTheme} /> }
</Stack.Screen>
在“设置”屏幕中,黑暗和更改主题将作为道具提供,因此您可以使用 this.props.darkT 和 this.props.changeTheme
访问
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
它 returns 即使在我调用函数 changeTheme()
你可以试试这个:
<Stack.Screen name="Settings">
{ () => <SettingsScreen darkT={!!this.state.darkTheme} changeTheme={this.changeTheme} /> }
</Stack.Screen>
在“设置”屏幕中,黑暗和更改主题将作为道具提供,因此您可以使用 this.props.darkT 和 this.props.changeTheme
访问