【问题标题】:How to wrap multiple stack screens with context provider in react navigation 5?如何在反应导航 5 中使用上下文提供程序包装多个堆栈屏幕?
【发布时间】:2021-04-14 04:37:11
【问题描述】:

我想实现以下目标,但这是不可能的,因为堆栈导航器仅接受 Stack.Screens 作为子项。

<Stack.Navigator>
  <Provider1>
    <Stack.Screen name="screen1" component={Screen1} />
    <Stack.Screen name="screen2" component={Screen2} />
  </Provider1>
  <Provider2>
    <Stack.Screen name="screen3" component={Screen3} />
    <Stack.Screen name="screen4" component={Screen4} />
  </Provider2>
</Stack.Navigator/>

我知道我可以通过像这样用堆栈导航器包裹屏幕来实现这一点:

const stackNav1 = <Provider1>
 <Stack.Navigator>
    <Stack.Screen name="screen1" component={Screen1} />
    <Stack.Screen name="screen2" component={Screen2} />
 </Stack.Navigator>
</Provider1> 


const stackNav2 = <Provider2>
 <Stack.Navigator>
    <Stack.Screen name="screen3" component={Screen3} />
    <Stack.Screen name="screen4" component={Screen4} />
 </Stack.Navigator>
</Provider2> 
...

<Stack.Navigator>
    <Stack.Screen name="stack1" component={stackNav1} />
    <Stack.Screen name="stack2" component={stackNav2} />
</Stack.Navigator/>

是否有任何更简单的方法可以让我不必定义新的导航器?

【问题讨论】:

  • 你在哪里能实现呢?如果可以,请您发布代码
  • @ThanveerShah 不幸的是没有
  • 我可以,但是一组导航器必须是底部导航:(

标签: react-native react-navigation react-navigation-v5


【解决方案1】:

试试这个,我可能错了

<Stack.Navigator>
  <Provider1>
   <Stack.Group>
    <Stack.Screen name="screen1" component={Screen1} />
    <Stack.Screen name="screen2" component={Screen2} />
   </Stack.Group>
  </Provider1>
  <Provider2>
   <Stack.Group>
    <Stack.Screen name="screen3" component={Screen3} />
    <Stack.Screen name="screen4" component={Screen4} />
   </Stack.Group>
  </Provider2>
</Stack.Navigator/>

【讨论】:

  • Stack.Group 是 React Navigation v6 中的一项功能,而不是问题中所述的 v5
猜你喜欢
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2020-11-02
  • 2018-12-30
相关资源
最近更新 更多