Я наблюдаю неожиданное поведение при переходе к определенному компоненту в навигаторе стека.Кажется, что, несмотря на желание перейти к определенному компоненту, также отображается второй компонент стека.Его не видно, но я вижу его в собственном отладчике реагирования и вижу побочные эффекты его выполнения (например, если он запускает запрос graphql, например).Я могу подтвердить это, распечатав сообщение на консоли внутри метода render()
.
Например, для данного стекового навигатора:
import { createStackNavigator } from "react-navigation";
import { Inner1 } from "./Inner1";
import { Inner2 } from "./Inner2";
import { Inner3 } from "./Inner3";
export const InnerNavigator = createStackNavigator(
{
Inner1: {
screen: Inner1,
path: 'inner/1',
navigationOptions: () => ({
headerTitle: 'Inner 1 Screen',
headerLeft: null
})
},
Inner2: {
screen: Inner2,
path: 'inner/2',
navigationOptions: () => ({
headerTitle: 'Inner 2 Screen',
headerLeft: null
})
},
Inner3: {
screen: Inner3,
path: 'inner/3',
navigationOptions: () => ({
headerTitle: 'Inner 3 Screen',
headerLeft: null
})
}
},
{
headerMode: "screen",
navigationOptions: {
header: null
}
}
);
При вызове navigation.navigate('Inner3');
из другого компонента в другом местеrender()
метод fo Inner1
вызывается в дополнение к Inner3
.Я не ожидал этого, но, возможно, я неправильно настроил навигатор?
Вот пример приложения, демонстрирующего поведение:
https://snack.expo.io/@alexwb/4f7450