2016-02-03 1 views
1

Я использую компонент Navigator и хочу передавать данные из компонента в другой. вот какой-то код.Как передать данные другому компоненту с помощью реагировать на нативный навигатор

renderScene(route, navigator) { 
    var routeId = route.id; 
    if (routeId === 'SplashPage') { 
     return (
      <SplashPage 
     navigator={navigator} /> 
    ); 
    } 
    if (routeId === 'Login') { 
     return (
      <Login 
     navigator={navigator} /> 
    ); 
    } 
    if (routeId === 'Home') { 
     return (
      <Home 
     navigator={navigator} /> 
    ); 
    } 
    .... 

Я хочу передать данные от входа в дом, когда я нажимаю на кнопку, например

this.props.navigator.replace({ 
     id: 'Home', 
     passProps: { 
      currentUser: this.user, 
     } 
    }) 

я хотел бы получить CurrentUser в главном компоненте. Я пробовал код, который я нашел, но ничего не работает.

Это whant я хочу сделать:

class Home extends React.Component { 
constructor(props){ 
    super(props); 
    this.currentUser = ???????? 
} 

Если кто-то может помочь мне с этим я был бы признателен.

Благодаря

ответ

3

Вы можете настроить свой метод renderScene так:

renderScene={(route, navigator) => { 
    return React.createElement(route.component, { ...this.props, ...route.passProps, navigator, route }); 
}} 

И использовать его как это:

this.props.navigator.replace({ 
    component: Home, 
    passProps: { 
     currentUser: this.user, 
    } 
}) 

И дома, вы можете получить доступ к CurrentUser, как это:

<Text>{ this.props.currentUser }</Text> 

Откроется this нить для более подробного примера, но это должно сработать для вас.

+0

Спасибо за помощь. – lolitar

Смежные вопросы