条件嵌套导航器给出错误“导航器只能包含 '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 != '' && (

现在可以使用了,我很想知道为什么它不起作用。