14

Czy jest jakikolwiek sposób syntetycznego zdefiniowania stosu scen (historii) za pomocą strumienia rdzenia Natywnego routera React? Załóżmy, że mam aplikację, w której użytkownik może naturalnie nawigować z poziomu A –> B –> C. Chciałbym zainicjować aplikację na scenie C, która ma taką samą historię jak naturalne zachowanie (A -> B -> C), więc użytkownik przechodzi z powrotem do B z początkowo otwartej sceny C.Syntetyczny stos scen (historia) z reaktywnym rdzennym routerem Flux

EDIT: Myślę, że powinien on być jakoś osiągalne za pomocą Redux utrzymują się, ale znalazłem ten powiązany issue.

+0

Czy możesz potwierdzić, czy będzie to pierwszy ekran aplikacji? –

+0

Tak, "C" będzie pierwszym ekranem aplikacji. – sealskej

+1

Jest to możliwe dzięki opcji nawigacji, w której można podać stos nawigacyjny i indeks stosu, który zostanie wyświetlony za pomocą metody natychmiastowego przełączania. Nie można znaleźć żadnej takiej rzeczy w reakcji na strumień routera natywnego. –

Odpowiedz

1

Udało mi się to zrobić z fałszywą pustą początkową sceną. To bardzo hackowate rozwiązanie, a animacja z C na B wciąż nie działa poprawnie.

import React, {Component} from "react"; 
import {AppRegistry} from "react-native"; 
import {Scene, Router, Actions, ActionConst} from "react-native-router-flux"; 
import A from "./A"; 
import B from "./B"; 
import C from "./C"; 

class App extends React.Component { 
    componentDidMount() { 
    const params = { 
     onBack:() => Actions.b({ 
     direction: 'fade', 
     onBack:() => Actions.a({ 
      direction: 'fade' 
     }) 
     }), 
     duration: 0 
    }; 
    Actions.c(params); 
    } 

    render() { 
    return (
     <Router> 
      <Scene key="root" style={{paddingTop: 60}}> 
      <Scene key="empty" 
        component={class extends Component{render() {return null}}} 
        /> 
      <Scene key="a" component={A} title='A' type={ActionConst.RESET}/> 
      <Scene key="b" component={B} title='B'/> 
      <Scene key="c" component={C} title='C'/> 
      </Scene> 
     </Router> 
    ) 
    } 
} 

AppRegistry.registerComponent('untitled',() => App);