У меня есть два стека в моем приложении, подобном этой структуре. Когда я перемещаю пользователя с экрана Home
внутри MainStack
на Quiz
экран внутри QuizStack
, вызывается метод componentDidMount
экрана QuizList
. Как мне это предотвратить? Я хочу, чтобы вызывался только экран componentDidMount
из Quiz
.
export const MainStack = createStackNavigator({
Home: { screen: Home },
Game: { screen: Game },
Leaderboard: { screen: Leaderboard }
}, { initialRouteName: 'Home' })
export const QuizStack = createStackNavigator({
QuizList: { screen: QuizList },
Quiz: { screen: Quiz },
QuizResult: { screen: QuizResult }
}, { initialRouteName: 'QuizList' })
export const InternalStacks = createBottomTabNavigator({
QuizStack: { screen: QuizStack, navigationOptions: { tabBarLabel: 'Quiz' } },
MainStack: { screen: MainStack, navigationOptions: { tabBarLabel: 'Home' } },
})
Хуже всего то, что при отправке уведомления pu sh пользователи автоматически направляются из Home (MainStack) на Викторина (QuizStack). Метод componentDidMount в Quiz вызывает API, поэтому, если пользователи 10K открывают уведомления, вызывается этот API 10K. Затем по неосторожности также вызывается метод componentDidMount из QuizList (QuizStack), который является дополнительным 10K APIs