条件嵌套导航器给出错误“导航器只能包含 'Screen'、'Group' 或 'React.Fragment' 作为其直接子项(找到 '')
Conditional Nested Navigator gives error "A navigator can only contain a 'Screen', 'Group' or 'React.Fragment' as its direct children (found '')
我有一个 'shows' 屏幕,其中有一个节目列表,单击可转到节目详细信息页面。在详情页面上,它有 3 个选项卡,但如果 feedurl 为空,则隐藏一个。当导航到具有 feedurl 而没有 feedurls 的各种节目时,这会引发错误:
Error: A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ''). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.
我猜你不能有条件标签渲染?
<ShowTab.Navigator
screenOptions={{
tabBarActiveTintColor: 'white',
tabBarInactiveTintColor: '#4b7894',
tabBarLabelStyle: {
fontWeight: '600',
},
tabBarIndicatorStyle: {
backgroundColor: 'white',
height: 4,
},
tabBarStyle: {
backgroundColor: '#021f2e',
},
}}>
<ShowTab.Screen name="About">
{() => <ShowInfo show={show} />}
</ShowTab.Screen>
<ShowTab.Screen name="Schedule">
{() => <ShowSchedule show={show} />}
</ShowTab.Screen>
{show.feedurl && (
<ShowTab.Screen name="Podcasts">
{() => <ShowPodcasts show={show} />}
</ShowTab.Screen>
)}
</ShowTab.Navigator>
能否请您尝试用这个替换您的 .Screen 代码?我从未使用过 React Native 或 React Navigation,但这是我通过一些研究发现的。
<ShowTab.Screen name="About" children={() => <ShowInfo show={show} />} />
<ShowTab.Screen name="Schedule" children={() => <ShowSchedule show={show} />} />
{show.feedurl && (
<ShowTab.Screen name="Podcasts" children={() => <ShowPodcasts show={show} />} />
)}
```
我不确定为什么它不起作用,但我将其更改为
{ show.feedurl != '' && (
现在可以使用了,我很想知道为什么它不起作用。
我有一个 'shows' 屏幕,其中有一个节目列表,单击可转到节目详细信息页面。在详情页面上,它有 3 个选项卡,但如果 feedurl 为空,则隐藏一个。当导航到具有 feedurl 而没有 feedurls 的各种节目时,这会引发错误:
Error: A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ''). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.
我猜你不能有条件标签渲染?
<ShowTab.Navigator
screenOptions={{
tabBarActiveTintColor: 'white',
tabBarInactiveTintColor: '#4b7894',
tabBarLabelStyle: {
fontWeight: '600',
},
tabBarIndicatorStyle: {
backgroundColor: 'white',
height: 4,
},
tabBarStyle: {
backgroundColor: '#021f2e',
},
}}>
<ShowTab.Screen name="About">
{() => <ShowInfo show={show} />}
</ShowTab.Screen>
<ShowTab.Screen name="Schedule">
{() => <ShowSchedule show={show} />}
</ShowTab.Screen>
{show.feedurl && (
<ShowTab.Screen name="Podcasts">
{() => <ShowPodcasts show={show} />}
</ShowTab.Screen>
)}
</ShowTab.Navigator>
能否请您尝试用这个替换您的 .Screen 代码?我从未使用过 React Native 或 React Navigation,但这是我通过一些研究发现的。
<ShowTab.Screen name="About" children={() => <ShowInfo show={show} />} />
<ShowTab.Screen name="Schedule" children={() => <ShowSchedule show={show} />} />
{show.feedurl && (
<ShowTab.Screen name="Podcasts" children={() => <ShowPodcasts show={show} />} />
)}
```
我不确定为什么它不起作用,但我将其更改为
{ show.feedurl != '' && (
现在可以使用了,我很想知道为什么它不起作用。