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

访问