отправлять данные с экрана на экран вкладки с помощью Reaction-native-router-flux - PullRequest
2 голосов
/ 20 марта 2019

Я пытаюсь отправить данные с одного экрана на другой с использованием response-native-router-flux, но проблема в том, что я не могу получить данные на принимающей стороне экрана.Вот мой фрагмент кода:

В router.js

<Router>
    <Stack key="root">
      <Scene
        key="signup"
        component={Signup}
        title=""
        initial={true}
        hideNavBar={true}
      />
      <Scene key="login" component={Login} title="" />

      <Scene key="bottomtourbar" tabs={true} hideNavBar={true}>
        <Scene
          key="toursHome"
          component={Tours}
          title="Tours"
          hideTabBar={true}
          hideNavBar={false}
        />
        <Scene
          key="analytics"
          component={Analytics}
          title="Analytics"
          hideNavBar={true}
          hideNavBar={false}
        />
       </Scene>
      </Stack>
  </Router>

В Login.js я использую приведенный ниже код для передачи параметра на страницу toursHome

Actions.toursHome({dataResponse:jsonResponse});

В файле ToursHome.js я пытаюсь получить доступ к параметру, отправленному со страницы входа

export default class Tours extends Component {
  constructor(props) {
    super(props);
  };
  render() {
    const responseData = this.props.dataResponse;
    console.log(responseData);
    return (
      <View style={styles.container}>
        <ToursTab />
        <View style={styles.TabbedContainer}>
          <Text>{responseData}</Text>
        </View>

        <ToursBottom />
      </View>
    );
  }
}

В консоли он печатается как неопределенный.

Отправка реквизитов с экрана регистрации для входа в систему осуществляется с помощью "Actions.login ({dataResponse: jsonResponse});", но отправка реквизитов с экрана входа в систему на панели вкладок завершается неудачно.Может ли кто-нибудь помочь мне решить эту проблему.

1 Ответ

1 голос
/ 24 марта 2019

Я пытался достичь этого разными способами. Но я усвоил «трудный путь», что прохождение реквизита через Actions к сценам на разных уровнях (глубина, как в вашем случае toursHome сцена вложена в bottomtourbar сцену), только должным образом осуществляется через редукс. Если ваши сцены подключены к редуксу (с помощью connect ()), обновите состояние в хранилище, и оно должно быть доступно для подключенного компонента через mapStateToProps.

В противном случае, передача пропусков между сценами с использованием Actions выполнима для сцен с одинаковым уровнем / глубиной (например, в вашем случае он успешно пропустит реквизиты с Actions между analytics и toursHome или signup и login)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...