我正在构建一个React Native应用程序,对于我的导航,我使用React Navigation(V3)。对于我的UI元素,我使用React Native Elements。
我有一个屏幕,可以在多个导航器中重复使用。有时它是堆栈的根,有时是堆栈的。我想根据其在堆栈中的位置,以编程方式向该屏幕headerLeft
添加一个navigationOptions
元素,因为如果该屏幕是我想要显示默认的后退按钮,还是要显示一个汉堡菜单图标,位于堆栈的根部(因为堆栈嵌套在抽屉中)。
所以我尝试了以下操作:
export class ScannerScreen extends Component {
static navigationOptions = ({ navigation }) => ({
headerLeft:
navigation.state.index > 0 ? (
undefined
) : (
<Icon type="ionicon" name="ios-menu" onPress={navigation.toggleDrawer} />
),
title: strings.scannerTitle
});
// ...
问题是,由于navigation.state.index
在此处是undefined
,因此无法使用。如何使用React导航?
编辑:
根据请求,我添加了console.log(navigation)
的屏幕截图(通过<Icon />
的{{1}}。)
答案 0 :(得分:0)
我找到了一个# In the demo, we are doing a simple classification task on the entire
# segment.
#
# If you want to use the token-level output, use model.get_sequence_output() # instead.
解决方案,可以,但是我也不太喜欢它:
hacky
这样,它将自动为整个堆栈设置它。您也可以在相应屏幕的单个导航选项中执行此操作。但这仅能起作用,因为为屏幕自动分配的键包含它的索引。