【发布时间】:2018-09-12 05:31:54
【问题描述】:
更新:
我在上一个问题上没有取得进展,所以我正在更改它,希望我能找到另一个答案
我正在 React Native 中创建一个应用程序,并且我正在尝试实现一个功能,该功能将更改标题的颜色,然后立即看到更改。
我有一个全局样式表,我可以在我的应用程序的任何地方导入和使用它
var globalStyles = Stylesheet.create({
menuHex: {
backgroundColor: '#6ed168'
}
...other styles...
})
菜单使用以下代码。第 2 行的变量“DrawerStack”上有我所有的屏幕,但这并不重要。在第 6 行,我使用来自上一个代码 sn-p 中的样式表的变量“globalStyles.menuHex”
const DrawerNavigation = StackNavigator({
DrawerStack: {screen: DrawerStack },
}, {
headerMode:'float',
navigationOptions: ({navigation}) => ({
headerStyle: globalStyles.menuHex,
title: 'Application',
headerTintColor: 'black',
headerLeft: <TouchableOpacity onPress={() => {
navigation.navigate('DrawerToggle')
}}>
<Image source = {menuIcon}/>
</TouchableOpacity>
})
})
然后我有这个函数来改变“menuHex 变量”的十六进制值
changetheme(itemValue){
this.setState({theme: itemValue})
if(itemValue === 'spring'){
globalStyles.menuHex = {backgroundColor: '#6ed168'}
}
else if(itemValue === 'summer'){
globalStyles.menuHex = {backgroundColor: '#ffff00'}
}
else if(itemValue === 'autumn'){
globalStyles.menuHex = {backgroundColor: '#ffa500'}
}
else if(itemValue === 'winter'){
globalStyles.menuHex = {backgroundColor: '#ADD8E6'}
}
}
我的问题是,当“menuHex”变量发生更改时,直到我点击菜单切换按钮或更改页面后才会显示更改。我想要它,以便在 changetheme() 函数完成时更改菜单标题的颜色。我尝试运行this.forceUpdate(),但没有成功
感谢您提供更多帮助
【问题讨论】:
标签: react-native styles dynamic-programming background-color stack-navigator