Как я могу получить параметры маршрута в реагировать родной - PullRequest
1 голос
/ 28 февраля 2020

Как я могу получить параметры маршрута в реагировать родной.

onPress={() => props.navigation.navigate('SingleTour', { item } )}

Ответы [ 4 ]

0 голосов
/ 02 марта 2020

Таким способом вы можете отправить товар eg index.js

<TouchableOpacity onPress={() => props.navigation.navigate('SingleTour', { item } )}>
    <Text>SingleTour</Text>
</TouchableOpacity>

в SingleTour.js вы можете получить этот товар вот так

const { item } = this.props.route.params;
0 голосов
/ 28 февраля 2020

Это ваше решение.

        onPress={() => {
          /* 1. Navigate to the Details route with params */
          navigation.navigate('Details', {
            itemId: 86,
            otherParam: 'anything you want here',
          });
        }}

Если возникнет какая-либо проблема, вы можете обратиться к этой Официальной документации См. Эту закуску Экспо Онлайн-демонстрация

0 голосов
/ 28 февраля 2020

Пожалуйста, отметьте это, сделайте c https://reactnavigation.org/docs/params/

  • , перейдите и pu sh примите необязательный второй аргумент, чтобы позволить вам передавать параметры к маршруту, по которому вы идете. Например: navigation.navigate ('RouteName', {paramName: 'value'}) .
  • Вы можете прочитать параметры через route.params внутри экрана
  • Вы можете обновить параметры экрана с помощью navigation.setParams
  • Начальные параметры можно передавать с помощью initialParams prop на экране
function SingleTour({ route, navigation }) {
  /* 2. Get the param */
  const { item } = route.params;

  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
    </View>
  );
}
0 голосов
/ 28 февраля 2020

Я предполагаю, что вам нужно передать параметр с помощью навигации и установить параметр в состояние нового экрана.

Предполагая, что это ваше событие onPress на базовом экране

onPress={() => props.navigation.navigate('SingleTour', { item } )}

Так что это как вы устанавливаете параметр в состоянии нового экрана

SingleTour. js

import React, { Component } from 'react';
import { 
  View,
  StyleSheet
} from 'react-native';

export default class SingleTour extends Component {

  constructor(props) {
    super(props);
    this.state = {
      item : this.props.navigation.state.params.item,
    }
  }

  render() {
    return (
      <View style={styles.container}>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
  }
});

Надеюсь, вы прояснили это:)

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