Одна вещь, которая немного сбивает с толку, заключается в различии между именем маршрута и ключом и почему вы должны использовать один против другого. И как обрабатываются повторяющиеся имена маршрутов.В реакции-навигации какая разница между routeName и ключом?
https://reactnavigation.org/docs/navigators/navigation-prop
Это говорит о том, что вы используете routeName
для перехода к экрану, и что key
это «уникальный идентификатор, используемый для сортировки маршрутов.» Что это значит?
Похоже, что имя маршрута не должно быть уникальным, как показано в моем примере, так как внешняя вкладка и внутренний стек имеют одинаковое имя маршрута. Когда вы используете навигационные функции - вы передаете имя маршрута, правильно? Если да, то как он различает дубликаты имен маршрутов в вложенных навигаторах и когда вы будете использовать ключ вместо этого?
export TabsNavigator = TabNavigator({
Home: {
screen:StackNavigator({
Home: { screen: HomeScreen },
}),
},
Profile: {
screen: StackNavigator({
Profile: { ProfileScreen },
}),
},
});
В документации есть пример установки ключа, но я не могу понять контекст того, что он пытается сделать, или почему вы могли бы сделать это в режиме реального использования. https://reactnavigation.org/docs/navigators/navigation-prop
import { NavigationActions } from 'react-navigation'
const setParamsAction = NavigationActions.setParams({
params: {}, // these are the new params that will be merged into the existing route params
// The key of the route that should get the new params
key: 'screen-123',
})
this.props.navigation.dispatch(setParamsAction)
где я могу указать ключ, если я не использую NavigationActions? Это в определении маршрута StackNavigator? – vijayst
Где настроить уникальный ключ? Это на экране или в навигаторе? Документы довольно плохо на клавишах ... – CoredusK