質問: drawernavigator({ home: { screen: stack }}, { contentcomponent: hamburgermenu } ) これは引き出し画面の簡単な例ですexport default class hamburgermenu extends component { render () { return <scrollview> <icon.button name={'home'} borderradius={0} size={25} onpress={() => { this.props.navigation.navigate('home')}}> <text>{i18n.t('home')}</text> </icon.button> <icon.button name={'settings'} borderradius={0} size={25} onpress={() => { this.props.navigation.navigate('settings')}}> <text>{i18n.t('settings')}</text> </icon.button> <icon.button name={'entry'} borderradius={0} size={25} onpress={() => { this.props.navigation.navigate('entry')}}> <text>{i18n.t('entry')}</text> </icon.button> </scrollview> } } あなたが私を助けてくれることを願っています。これはナビゲーションの重要な部分であり、解決策は素晴らしいでしょう!
回答: backを使用するには、パスに関連付けられた一意のキーを見つける必要があります。ナビゲーションレデューサー内で、既存の状態を検索して、そのパスを使用してスタック上の最初のルートを見つけ、そのキーを取得してそれをbackに渡すことができます。 [戻る]は、指定したパスの前の画面に移動します。 let key; if (action.payload) { // find first key associated with the route const route = action.payload; const routeobj = state.routes.find( (r) => r.routename === route ); if (routeobj) { key = { key: routeobj.key }; } } return appnavigator.router.getstateforaction( navigationactions.back( key ), state );