Обновление до React navigation 5: Доступ к дочернему состоянию навигации для маршрута небезопасен и не будет работать правильно - PullRequest
0 голосов
/ 01 мая 2020

В своем собственном приложении «Реакция» я обновил «Реакция навигации 3» до «Реакция навигации 5». Но после обновления, когда я запускаю приложение, я всегда получаю это предупреждение несколько раз, когда выполняю какую-либо навигацию:

Accessing child navigation state for a route is not safe and won't work correctly

Warning

Например, я перемещаюсь между экранами 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. Я использую библиотеку, потому что мне нужны навигационные реквизиты в некоторых дочерних компонентах. Но я не понял, почему они поставили предупреждение там! Может быть, я получаю предупреждение, потому что я не использую машинопись! Если это так, могу ли я проигнорировать это предупреждение безопасно? Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...