Мой вопрос на самом деле о том, желающий точное поведение жука, показанного на react-native-router-flux: How to prevent Tab Scene history stack from being reseted when changing between tabs?переустановку Tab стек истории сцены при смене вкладки
я копирую точный сценарий описания и фрагменты кода из связанного вопроса, поскольку это именно то, что я нужно
у меня есть
Router
установки с 2 вкладки сцены:
- Tab 1: имеют 2 СЧА igable scenes (статические экраны);
- Экран A: иметь кнопку, чтобы перейти к экрана B;
- Экран B: имеет только текст;
- Вкладка 2: имеет 1 статический экран.
- Экран C: имеет только текст;
Код выглядит следующим образом.
app.js:
import React from 'react'; import { Router, Scene } from 'react-native-router-flux'; import Tab from '../tab'; import ScreenA from './a'; import ScreenB from './b'; import ScreenC from './c'; export default class App extends React.Component { render(){ return ( <Router> <Scene key="root"> <Scene key="tabbar" tabs={true}> <Scene key="tab1" title="Tab 1" icon={Tab}> <Scene key="a" title="Screen A" component={ScreenA} /> <Scene key="b" title="Screen B" component={ScreenB} /> </Scene> <Scene key="tab2" title="Tab 2" icon={Tab}> <Scene key="c" title="Screen C" component={ScreenC} /> </Scene> </Scene> </Scene> </Router> ); } }
Экраны довольно просто слишком.
a.js:
export default class ScreenA extends React.Component { render(){ return ( <View> <Text>This is Screen A</Text> <TouchableHighlight onPress={() => Actions.b()}> <Text>Go to Screen B</Text> </TouchableHighlight> </View> ); } }
b.js:
export default class ScreenB extends React.Component { render(){ return ( <View> <Text>This is Screen B</Text> </View> ); } }
c.js:
export default class ScreenC extends React.Component { render(){ return ( <View> <Text>This is Screen C</Text> </View> ); } }
Желаемый прецедент:
- Приложение отображает экран A (в табл. 1);
- Нажмите кнопку на экране A: приложение перейдет к Экран B (все еще в Таб. 1);
- Нажмите на вкладку 2: приложение перейдет к Экран C (в табл. 2).
- Нажмите на вкладку 1: приложение перейдет на Экран A (в табл. 1) и НЕ на экран B, как по дизайну.
Я знаю, что могу реализовать пользовательский редуктор, чтобы решить эту проблему, но я считаю, что должно быть более простое решение, которое я, вероятно, игнорирую.
Что вы имеете в виду, не проблема? Стандартное поведение - вернуться к экрану B при возврате на вкладку 1. Я хочу, чтобы история вкладок была сброшена – Variant
Извините. Я не понимаю ваш вопрос. –