渲染时React Native Navigation传递动态数据

时间:2020-11-04 16:55:53

标签: react-native react-native-navigation

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()

,它也会返回false。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

<Stack.Screen name="Settings">
   { () => <SettingsScreen darkT={!!this.state.darkTheme} changeTheme={this.changeTheme} /> }
</Stack.Screen>

在“设置”屏幕中,darkT和changeTheme将作为道具提供,因此您可以使用this.props.darkT和this.props.changeTheme

进行访问。