React Native状态栏颜色错误

ee7vknir  于 2022-11-17  发布在  React
关注(0)|答案(3)|浏览(179)

我有一个带有多个屏幕的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>
  );
}

我做错什么了吗?

plicqrtu

plicqrtu1#

我认为您组件没有重新呈现。

A--〉B

A渲染时.状态栏颜色:红色的
B渲染时.状态栏颜色:蓝色的
返回A。A不重新渲染。状态栏颜色:蓝色,
如果A组件重新呈现,这个问题就会解决。

lfapxunr

lfapxunr2#

重新呈现组件确实做到了这一点。感谢您的反馈。

eimct9ow

eimct9ow3#

您还可以使用静态setBackgroundColor函数更改状态的颜色。
我建议您将状态颜色设置为componentDidMountcomponentWillMountcomponentWillUnmount,以设置回以前的状态颜色,如下例所示。

componentDidMount() {
  StatusBar.setBackgroundColor('red');
}
componentWillUnmount() {
  StatusBar.setBackgroundColor('white');
}

相关问题