如果你想保留的全部籌碼,而params,僅開溝登錄頁面,那麼你既可以在攝像機頁面使用Reset Navigation Action:
import { NavigationActions } from 'react-navigation'
const resetAction = NavigationActions.reset({
index: 1,
actions: [
NavigationActions.navigate({ routeName: 'Home', params: this.props.navigation.state.params })
NavigationActions.navigate({ routeName: 'Info', params: this.props.navigation.state.params })
]
})
this.props.navigation.dispatch(resetAction)
這樣,您將:
- 導航到主頁頂部的信息頁面,這意味着後退按鈕將導致主頁。
- 如果需要,請保留參數。如果你不只是不通過它們。
此功能可以添加到任何位置:組件內部/動作創作者/內部後退按鈕。
或者爲後退按鈕添加相同的代碼。在這種情況下,你需要把它添加到相機路徑的navigationOptions:
const backButton = ({ navigation }) => ({
headerLeft: <TouchableOpacity
onPress={() => {
// the code from above, except for import line and using navigation.whatever instead of this.props.navigation.whatever
}}
><Text>Back</Text> // this is a text of a back button, you could also use an icon
</TouchableOpacity>
});
導航:
const MyStack = StackNavigator({
home: { screen: Home },
info: { screen: Info },
login: { screen: Login },
camera: { screen: Camera }, navigationOptions: backButton });
我能問爲什麼「重置」是不是正在考慮這種情況?我想你可能會過度複雜的應用程序流或誤解React-Navigation庫。 – Eduard
將重置刪除整個堆棧還是僅刪除最後一個登錄頁面?謝謝 – SwimmingG
@Eduard它會刪除整個堆棧,但您可以直接重新創建堆棧,省略登錄頁面。如果這就是你想要做的,我可以告訴你如何。 – Eduard