2015-10-02 2 views
1

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

Вот что я хотел бы выполнить. Я создаю приложение с экраном входа. На экране входа в систему не может быть панели навигации, но она должна перемещаться после входа в компонент с панелью навигации с пользовательским названием, переданным из компонента входа (имя пользователя).

Когда приложение загружается, компонент App будет загружен стандартным компонентом компонента Navigator, который, в свою очередь, отображает компонент Login. Когда компонент входа будет отображаться, он будет проверять предыдущие сеансы и будет отображать основное приложение (компонент Wrapper) компонентом NavigatorIOS, который, в свою очередь, отображает другой компонент (компонент List, не показанный в приведенном ниже коде).

Возможно ли это? Если да, то как :)

У меня есть следующий код:

// The first main component, 
// this will be loaded from the AppRegistry 
var App = React.createClass({ 
    render() { 
     return (
      <Navigator 
       initialRoute={{ 
        component: Login 
       }} 
       renderScene={(route, navigator) => { 
        return React.createElement(route.component, { navigator });   
       }} /> 
     ) 
    } 
}); 

// The login component that 
// renders and handles all login processes. 
var Login = React.createClass({ 
    componentDidMount() { 
     // ... login logic ... 
     this.props.navigator.replace({ 
      component: Wrapper, 
      // I want to pass a title here 
     }); 
    }, 

    render() { 
     return (
      <Text>Login page</Text> 
     ) 
    } 
}); 

// When logged in, the NavigatorIOS component will be 
// shown, here is where I want to title previously passed 
// from the login component. 
var Wrapper = React.createClass({ 
    render() { 
     return (
      <NavigatorIOS 
       initialRoute={{ 
        component: List 
        title: // I want to fetch the title here 
       }} /> 
     ) 
    } 
}); 

ответ

0
var Login = React.createClass({ 
    componentDidMount() { 
     // ... login logic ... 
     this.props.navigator.replace({ 
      component: Wrapper, 
      componentConfig : { 
       title : "My New Title" 
      } 
      // I want to pass a title here 
     }); 
    }, 

    render() { 
     return (
      <Text>Login page</Text> 
     ) 
    } 
}); 

// When logged in, the NavigatorIOS component will be 
// shown, here is where I want to title previously passed 
// from the login component. 
var Wrapper = React.createClass({ 
    render() { 
     return (
      <NavigatorIOS 
       initialRoute={{ 
        component: List 
        title: this.props.title 
       }} /> 
     ) 
    } 
}); 
+0

Я попытался это, но '' this.props.title' возвращает undefined'. Это компонентConfig, который обрабатывает эту проблему? Потому что я искал google и реакционно-ответное github-репо, и я не могу найти ничего о существовании компонента Component. – frietkot

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