如何在导航中的组件中传递道具?反应本机

时间:2021-01-19 16:50:30

标签: javascript react-native navigation react-props use-state

我想实现暗模式,但我遇到了这个问题,

这是我想在导航中传递到 MenuScreen 的开关及其道具

function MenuScreen({navigation, darkModeValue, onDarkModeValue}) {
  return (
    <SafeAreaView style={styles.con}>
      <ScrollView>
        <Switch
          style={{position: 'absolute'}}
          value={darkModeValue}
          onValueChange={onDarkModeValue}
        />

那是app.js,这里是当我点击开关按钮时我想改变的useState钩子

const App = () => {
  const [dark, setDark] = useState(true);

  return (
    <PaperProvider theme={dark ? paperDarkTheme : paperDefaultTheme}>
      <NavigationContainer theme={dark ? DarkTheme : DefaultTheme}>
        <MainStack />
      </NavigationContainer>
    </PaperProvider>
  );
};

这是堆栈导航器,我需要在这里传递道具

function MainStack() {
  return (
    <Stack.Navigator screenOptions={{headerShown: false}}>
      <Stack.Screen
        name="MenuScreen"
        component={MenuScreen}
        initialParams={{onDarkModeValue: () => setDark(true)}}
      />
      <Stack.Screen name="OmJoinScreen" component={OmJoinScreen} />
    </Stack.Navigator>
  );
}

我能不能做这个, 如果有更好的方法来做黑暗模式,请告诉我, 谢谢

1 个答案:

答案 0 :(得分:0)

你只需要那个代码

const item = route.params