Передача данных вместе с навигацией на родительский экран в React-Native - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь создать гибридное приложение на платформе Reaction-native .У нас есть две страницы здесь.Первая страница - это страница с вкладками, а другая - подробная страница. Я хочу передать некоторые данные на родительскую страницу со второй страницы, когда нажата стрелка назад в заголовке (, т. Е. Когда происходит навигация).) и хотите отобразить его на первой странице.

Мне удалось передать данные на дочернюю страницу с родительской страницы, и эти данные используются на второй странице.Но то же самое нельзя сделать наоборот.

Это то, что я пробовал.

Родительская страница

class Menu extends Component {   

   refresh=(data)=> {
      alert(data);   } }

   render() {
     return (
       <View>

         <TouchableOpacity onPress={() => {this.props.navigation.navigate('ProductDetail',{
            onGoBack: this.refresh,
          }); 
         }}> 
       </View>);
  }

На дочерней странице

static navigationOptions= ({ navigation }) => {
    //const {state} = navigation;
    return {

        headerTitle: (
            <View>
                <Image source={require('../images/assets/menuscreenlogo.png')}/>
            </View>
        ),
        headerLeft: (
            <TouchableOpacity onPress={() => {this.props.navigation.state.params.onGoBack('123');
            this.props.navigation.goBack();}} >

                <Image source={require('../images/assets/dinnerscreen-backarrow.png')}  />
            </TouchableOpacity>
        ),
        headerRight: (
            <TouchableOpacity>
                <Image  source={require('../images/assets/dinnerscreen-basket.png')} />
            </TouchableOpacity>
        ),
      };
};

Может кто-нибудь помочь мне сделать то же самое?

1 Ответ

0 голосов
/ 12 декабря 2018

Нет необходимости использовать this.props.navigation на дочерней странице, поскольку вы уже получаете navigation объект, поэтому он должен быть

<TouchableOpacity onPress={() => {navigation.state.params.onGoBack('123');
        navigation.goBack();}} >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...