2017-01-19 5 views
1

Мой вопрос на самом деле о том, желающий точное поведение жука, показанного на 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, как по дизайну.

Я знаю, что могу реализовать пользовательский редуктор, чтобы решить эту проблему, но я считаю, что должно быть более простое решение, которое я, вероятно, игнорирую.

ответ

0

У меня нет никаких проблем с вашим примером. Попробуйте прочитать эту статью. https://medium.com/differential/react-native-basics-using-react-native-router-flux-f11e5128aff9#.eaz0uamvu

+0

Что вы имеете в виду, не проблема? Стандартное поведение - вернуться к экрану B при возврате на вкладку 1. Я хочу, чтобы история вкладок была сброшена – Variant

+0

Извините. Я не понимаю ваш вопрос. –