我得到了一个全局样式的js文件,它带有一个布尔值来控制我是使用lightmode还是darkmode。我如何通过一个不同的js文件中的按钮来设置这个布尔值?
如何在StylingVars.js文件中将StylingVars.darkmode设置为true(或false)?
ProfileScreen = () => {
const [darkmode, setDarkmode] = useState(StylingVars.darkmode);
const ToggleDarkmode = () => {
setDarkmode(!darkmode);
}
useEffect( () => {
console.log(darkmode)
}, [darkmode]);
return (
<View style={{flex: 1, backgroundColor: StylingVars.darkmode === false ? StylingVars.lightmodeBackground : StylingVars.darkmodeBackground}}>
<StatusBar style={StylingVars.darkmode === false ? 'dark' : 'light'}/>
<Button title='DarkMode' onPress={() => {
ToggleDarkmode()
}}/>
</View>
);
}
这是我目前拥有的,但useState不会覆盖其他文件中的布尔值,而是创建一个具有初始值的新var(如果我没有错的话)。
1条答案
按热度按时间iqih9akk1#
你可能想使用状态管理库-你可能听说过Redux或Mobx。我推荐祖斯坦德来管理国家。