В своем собственном приложении «Реакция» я обновил «Реакция навигации 3» до «Реакция навигации 5». Но после обновления, когда я запускаю приложение, я всегда получаю это предупреждение несколько раз, когда выполняю какую-либо навигацию:
Accessing child navigation state for a route is not safe and won't work correctly
Например, я перемещаюсь между экранами StackNavigator, используя команду this.props.navigation.push
, как в следующем коде:
<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>
Если я нажимаю на каждом значок заголовка я получаю это предупреждение. Все эти команды навигации работали до обновления. После обновления они все еще работают, но выдают это предупреждение. Я искал в Inte rnet и нашел единственное место, где происходит это предупреждение:
реагировать-навигация / навигация-ex / packages / compat / src / createCompatNavigationProp.tsx
Это уровень совместимости, который обрабатывает различные различия API между React Navigation 4 и 5. Я использую библиотеку, потому что мне нужны навигационные реквизиты в некоторых дочерних компонентах. Но я не понял, почему они поставили предупреждение там! Может быть, я получаю предупреждение, потому что я не использую машинопись! Если это так, могу ли я проигнорировать это предупреждение безопасно? Спасибо за любую помощь.