在我的反应原生应用程序中,我将反应导航 3 升级为反应导航 5。但是在升级后,当我运行应用程序时,每当我进行任何类型的导航时,我总是会多次收到此警告:
Accessing child navigation state for a route is not safe and won't work correctly
例如,我使用this.props.navigation.push
以下代码中的命令在 StackNavigator 的屏幕之间导航:
<Screen header={<Header
centerComponent={
<CustomText style={{ color: colors.primaryText, marginLeft: 15, marginRight: 15 }}>
{shop && shop.name}
</CustomText>
}
leftComponent={
<HeaderIcon
onPress={() => this.props.navigation.push("SelectShop", { pop: true })}
type="material-community"
name="store" />
}
rightComponent={
<HeaderIcon
onPress={() => this.props.setProductLayout()}
image={numColumns == 1 ? GridIcon : ListIcon} />
}
/>}>....</Screen>
如果我单击每个标题图标,我会收到此警告。这些导航命令在升级之前都可以使用。升级后它们仍然可以工作,但会发出此警告。我通过互联网搜索,发现此警告发生的唯一地方:
react-navigation/navigation-ex/packages/compat/src/createCompatNavigationProp.tsx
这是一个兼容层,用于处理 React Navigation 4 和 5 之间的各种 API 差异。我使用该库是因为我需要一些子组件中的导航道具。但我不明白他们为什么把警告放在那里!也许我收到警告是因为我没有使用打字稿!如果是这种情况,我可以安全地忽略此警告吗?谢谢你的帮助。