Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native react navigation中导航堆栈中的第一个屏幕_React Native_React Navigation - Fatal编程技术网

React native react navigation中导航堆栈中的第一个屏幕

React native react navigation中导航堆栈中的第一个屏幕,react-native,react-navigation,React Native,React Navigation,是否可以检查react导航堆栈中的屏幕数?我只需要在堆栈的第一个屏幕的标题中显示徽标组件。可以。你可以用 let index = this.props.navigation.dangerouslyGetParent().state.index; 获取堆栈中的索引。如果索引为0,则位于堆栈的第一个屏幕上 你可以阅读更多关于它的内容。您的用例正是它的用途: 另一个很好的使用案例是查找活动对象的索引 父级路由列表中的路由。因此,在堆栈的情况下,如果 在索引0处,可能不希望渲染“后退”按钮,但如果

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

可以。你可以用

let index = this.props.navigation.dangerouslyGetParent().state.index; 
获取堆栈中的索引。如果索引为0,则位于堆栈的第一个屏幕上

你可以阅读更多关于它的内容。您的用例正是它的用途:

另一个很好的使用案例是查找活动对象的索引 父级路由列表中的路由。因此,在堆栈的情况下,如果 在索引0处,可能不希望渲染“后退”按钮,但如果 如果您在列表中的其他位置,则将呈现“后退”按钮


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

Andrew解决方案对您来说效果很好,但是那些想要获得更新状态的人必须使用useNavigationState,相应地,导航文档:

函数的作用是:返回当前的导航状态。主要区别在于,当值更改时,useNavigationState钩子将触发重新呈现,而navigation.DangerlyGetState()不会

就像这样使用:

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

这正是我想要的,@Andrew mant,谢谢;)