React Native: Как мне перенаправить пользователя после заполнения формы? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть два экрана, HomeScreen и AddScreen. Когда пользователь нажимает кнопку на HomeScreen, он направляется на AddScreen. После того как пользователь заполнит форму на AddScreen, я хочу, чтобы он вернулся на HomeScreen. Я использую react-navigation. Вот что я попробовал:

import React, {useState} from 'react';
import {
  View,
  Text,
  TouchableOpacity,
} from 'react-native';
import firebase from 'react-native-firebase';

const Add = (navigation) => {
  return (
    <View style={styles.container}>
      <TouchableOpacity
          style={styles.buttonStyle}
          onPress={() => {
            firebase
              .firestore()
              .collection('my-table')
              .add({
                // Some stuff
              })
              .then(() => {
                // What I tried
                navigation.navigate('Home', {screen: 'HomeScreen'}
                // have also tried
                navigation.goBack()
              })
              .catch((error) => console.log(error));
          }}
        >
          <Text>Share</Text>
        </TouchableOpacity>
    </View>
  );
};

Любая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Я нашел ответ! Если вы посмотрите на мой пример, то увидите, что пропеллер компонентов выглядит следующим образом (navigation). Ну, это должно выглядеть так ({navigation}). Это позволяет вам получить доступ к функции goBack(). Итак, ваш код должен выглядеть примерно так:

onPress={() => {
               // Do whatever
              })
              .then(() => navigation.goBack())
              .catch((error) => console.log(error));
          }}
0 голосов
/ 12 апреля 2020

Вы хотите использовать createStackNavigator(), чтобы вы могли перенести существующий экран (AddScreen в вашем случае) из стека в go обратно на предыдущий экран (HomeScreen); у вас также есть возможность go перейти к n-му предыдущему экрану, а не только к предыдущему.

См. этот вопрос / ответ , что является практически той же проблемой, с которой вы столкнулись.

...