Как настроить контейнер приложения в React-Navigation-3? - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу отправить данные как initialProps с нативного андроида в React-Native, но проблема в react-navigation, в котором я использую StackNavigator

Это решение (отсюда справка ), которая будет работать в предыдущих версиях react-navigation, используемой для отправки initialProps из нативной в первую сцену реагирования-натива:

export default class AwesomeProject extends Component {
    constructor(props){
        super(props)
        console.warn(this.props.movie_id);
    }

    render() {
              return <RootStack screenProps={this.props.movie_id} />;
        }
}

const RootStack = createStackNavigator(
    { 
        home:  {screen: Details},
        genre: {screen: Genre},
    },
    { 
        initialRouteName: 'home',
    }
);

но начиная с react-navigation-3 и далее, вы должны настроить контейнер приложений напрямую.

Может кто-нибудь сказать мне, как этого добиться, используя createAppContainer()?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Благодаря @David Gevorgyan мне удалось отправить initialProps с нативного андроида на первую сцену реакции-натива StackNavigator, например:

export default class AwesomeProject extends Component {
    constructor(props){
        super(props)
    }

    render() {
    return <RootStack screenProps={this.props.movie_id} />;
  }
}

const RootStack = createAppContainer(StackNavigator)

const StackNavigator = createStackNavigator(
    { 
        home:  {screen: Details},
        genre: {screen: Genre},
    },
    { 
        initialRouteName: 'home',
    }
);
0 голосов
/ 15 февраля 2019

Как пример, из одного из моих собственных проектов:

import {
  createSwitchNavigator,
  createAppContainer
} from 'react-navigation';

const SwitchNavigator = createSwitchNavigator(
  {
    ScreenOne,
    ScreenTwo,
    ScreenThree
  }
);
const AppContainer = createAppContainer(SwitchNavigator);

class App extends Component {
  render() {
    return (<AppContainer />);
  }
}
...