У меня есть StackNavigator
с вложенным TabNavigator
в нем, и я перехожу к VisitUserPageNew
и получаю параметры на первом отображаемом экране, который UserPage
, и это работает. Но затем я пытаюсь передать параметры вложенному UserSection
, и он возвращает undefined
это навигационный вызов:
this.props.navigation.navigate('VisitUserPageNew',{
visitorProps: {
visitorNickName:this.props.linkPublisherNickName,
visitor:true
}
})
это мои компоненты:
class UserPage extends Component {
visitorProps = this.props.navigation.getParam('visitorProps')
render() {
console.log(this.visitorProps) // return the object I need
return(
<View style={styles.container}>
<Text>Text</Text>
<View style={{width:'100%',height:'100%',flex:1}}>
<UserSection
visitorProps={this.visitorProps}
/>
</View>
</View>
)
}
}
export default class UserLinks extends Component {
render() {
console.log(this.props.visitorProps) // return undefined
return <View/>;
}
}
export default class UserBookmarks extends Component {
render() {
console.log(this.props.visitorProps) // return undefined
return <View/>;
}
}
это структура маршрутов:
export const UserSection = createMaterialTopTabNavigator({
UserFeed: {
screen: UserLinks,
},
Saved: {
screen: UserBookmarks,
},
})
export const UserPageNew = StackNavigator({
UserSectionPage: {
screen: UserPage
},
UserSection: {
screen: UserSection
},
})
export const Home = StackNavigator({
Main: {
screen: Main
},
VisitUserPageNew: {
screen: UserPageNew
},
})
так что передача параметров на первый экран прекрасно работает Но когда я хочу продолжать передавать те же самые параметры вложенному UserSection
, это терпит неудачу. Я также пытался дозвониться до visitorProps = this.props.navigation.getParam('visitorProps')
внутри UserBookmarks
и UserLinks
, но результат был тот же. Я не мог получить эти параметры.