反应导航中导航堆栈中的第一个屏幕

时间:2019-03-06 09:30:25

标签: react-native react-navigation

是否可以检查反应导航堆栈中的屏幕数量?我只需要在堆栈的第一个屏幕的标题中显示徽标组件。

2 个答案:

答案 0 :(得分:2)

Andrew 解决方案适合您,但那些想要获得更新状态的人必须使用 useNavigationState,根据导航文档:

<块引用>

navigation.dangerouslyGetState() 函数还返回当前导航状态。主要区别在于 useNavigationState 钩子会在值更改时触发重新渲染,而 navigation.dangerouslyGetState() 不会。

就这样使用:

const index = useNavigationState(state => state.index);

答案 1 :(得分:1)

可以。您可以使用

let index = this.props.navigation.dangerouslyGetParent().state.index; 

获取堆栈中的索引。如果索引为0,则您位于堆栈的第一个屏幕上。

您可以详细了解here。您的用例正是该用途:

  

另一个很好的用例是找到活动目录的索引   父母的路线列表中的路线。所以在堆叠的情况下   在索引0处,那么您可能不希望渲染后退按钮,但是如果   如果您在列表中的其他位置,则将显示“后退”按钮。

请记住要确保该调用返回有效值。