我有一个带有多个屏幕的react原生应用程序。每个组件都有自己的状态栏来定义颜色(见代码ex component)。当启动应用程序时,会显示正确的颜色,但当我转到使用另一种颜色(黑色而不是白色,反之亦然)的屏幕时,它会正确地更改,但之后在进一步导航时,它不会再更改。似乎颜色只能更改一次。
render() {
return (
<View style={theme.container}>
<StatusBar
translucent={false}
backgroundColor={S.COLOR_STATUS_BAR_DARK}
barStyle="dark-content"
/>
{this.props.isFetching || this.props.isSubmitting
? <Spinner />
:
<View style={theme.container}>
{ this.renderAlarms() }
</View>
}
</View>
);
}
我做错什么了吗?
3条答案
按热度按时间plicqrtu1#
我认为您组件没有重新呈现。
A--〉B
A渲染时.状态栏颜色:红色的
B渲染时.状态栏颜色:蓝色的
返回A。A不重新渲染。状态栏颜色:蓝色,
如果A组件重新呈现,这个问题就会解决。
lfapxunr2#
重新呈现组件确实做到了这一点。感谢您的反馈。
eimct9ow3#
您还可以使用静态setBackgroundColor函数更改状态的颜色。
我建议您将状态颜色设置为
componentDidMount
或componentWillMount
和componentWillUnmount
,以设置回以前的状态颜色,如下例所示。