我想实现暗模式,但我遇到了这个问题,
这是我想在导航中传递到 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>
);
}
我能不能做这个, 如果有更好的方法来做黑暗模式,请告诉我, 谢谢
答案 0 :(得分:0)
你只需要那个代码
const item = route.params