打开已发布的应用程序时,React Navigation 5自定义标题组件会导致崩溃

问题描述

我想在反应导航5 中拥有自己的标题组件。在开发生产模式下,一切正常,但是,当我构建项目时,请在手机上打开它,然后按以下“设置”屏幕,使我没有错误日志,并导致我的应用崩溃。我正在使用反应本机元素作为自定义标头组件。

我使用的版本:

  • react-navigation / bottom-tabs ^ 5.4.5
  • 反应导航/本机^ 5.4.0
  • 反应导航/堆栈^ 5.3.7
  • expo-linear-gradient〜8.2.1

我已经解构了一些东西,并得出以下代码不起作用的结论

       <Stack.Navigator 
        screenoptions={{
            header: () => (
                <Header
                    leftComponent={{ text: 'Settings',style: [t.textWhite] }}
                    rightComponent={<Icon name='user' type='font-awesome' color={'white'} />}
                    linearGradientProps={{
                        colors: ['#2c5282','#3b8b85'],start: { x: 0,y: 0.5 },end: { x: 1,}}
                />
            ),}}
        initialRouteName="SettingsIndex"
    >

有人知道如何解决吗?

编辑(发现问题)

该问题是由我的标头属性中的“ linearGradientProps”引起的。因此,这可能是反应本机元素或反应本机崩溃。

linearGradientProps={{
   colors: ['#2c5282',}}

解决方法

嗯,我认为您没有仔细阅读文档 https://reactnativeelements.com/docs/header/#lineargradient-usage 这是您错过LinearGradient的示例

import { Header } from 'react-native-elements';
import LinearGradient from 'react-native-linear-gradient';

...

<Header
  ViewComponent={LinearGradient} // Don't forget this!
  linearGradientProps={{
    colors: ['red','pink'],start: { x: 0,y: 0.5 },end: { x: 1,}}
/>