The key
property for goBack()
is a dynamically created string, created by react-navigation
whenever it navigates to a new route.
It is stored in this.props.navigation.state.key
.
So if you want to go from EditPage
to Cover
, what you have to do is to pass the key of EditCover
down to EditPage
, and then call goBack()
with the key.
Why not key of Cover
but EditCover
?
Because react-navigation only provides the method goBack(key)
, it’s go back from key, not go back to key.
Optionally provide a key, which specifies the route to go back from. By default, goBack will close the route that it is called from. If the goal is to go back anywhere, without specifying what is getting closed, call
.goBack(null);
EditCover.js
render() { const { state, navigate } = this.props.navigation; return ( <View> <Button title="Go to Page" onPress={ () => { /* pass key down to *EditPage* */ navigate('EditPage', { go_back_key: state.key }); }} /> </View> ); }
EditPage.js
render() { const { state, goBack } = this.props.navigation; const params = state.params || {}; return ( <View> <Button title="Back to Cover" onPress={ () => { /* go back from *EditCover* to *Cover* */ goBack(params.go_back_key); }} /> </View> ); }