将 Expo LinearGradient 设置为整个 React Native 应用程序的背景

Mis*_*aOS 5 linear-gradients react-native react-navigation expo

我正在使用react-navigation,并且我有一个抽屉导航器,其中嵌套了一个stackNavigator,如何使用Expo LinearGradient为整个应用程序设置渐变背景,而不必在<LinearGradient>其渲染方法中包装每个屏幕组件?

PS:我尝试用app.js 中的<MyApp />组件包裹组件<LinearGradient>,但组件似乎<MyApp />用自己的背景覆盖了整个屏幕,因此看不到线性渐变。

导航码

const HomeStack = createStackNavigator({
  Home: {
    screen: Home
  },
  Results: {
    screen: Results
  },
}, {
  navigationOptions: {
    header: null
  }
})


const MyApp = createDrawerNavigator({
  Home: {
    screen: HomeStack,
    navigationOptions: {
      title: '...'
    }
  },
  Info: {
    screen: Info,
    navigationOptions: {
      title: '.....'
    }
  },
}, {
  drawerPosition: '....',
  contentOptions: {
    itemStyle: {
      alignSelf: '....',
    },
    labelStyle: {
      fontFamily: '....'
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

小智 3

这在我的 App.js 中对我有用:

return (
  <LinearGradient colors={myGradientColor} style={{ flex: 1}}>
    <MainNavigator />
  </LinearGradient>
);
Run Code Online (Sandbox Code Playgroud)

尝试将导航器简化为几个屏幕,然后引入嵌套的导航器,然后引入整个恐怖。

我必须修改 MainNavigator 中的后续屏幕以排除任何类型的 LinearGradient 背景,并在样式内工作flex: 1