J'ai un composant qui utilise la navigation lorsque l'on clique dessus pour changer d'écran. Lorsque je le fais, je veux pouvoir passer quelques arguments à l'aide de navigation.navigate.

Composant de la carte

const Card = props => {
    return (
    <TouchableOpacity activeOpacity={0.7} onPress={() => props.nav.navigate('ActivityScreen', {activityTitle: 'this is not working >:(', activityID: props.id})}>
        <View style={styles.card}>
            <Text style={styles.title}>{props.title}</Text>
            <View style={styles.insideCardView}>
                <Text>More Text</Text>
            </View>
        </View>
    </TouchableOpacity>
    );
}

Nouvel écran (sur lequel je veux mes informations)

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

const ActivityScreen = props => {
    return (<View style={styles.header}>
        <Text>This is the Avtivity page</Text>
        {
            //This does not work, gives no error, just blank
        }
        <Text>{props.activityTitle}</Text>
        <Text>{props.activityID}</Text>
    
    </View>);
}

Est-ce que c'est censé fonctionner ? Et si oui, est-ce le moyen le plus efficace de le faire ?

Merci d'avance.

0
João Dias 10 oct. 2020 à 06:23

1 réponse

Meilleure réponse

Vous devez y accéder en utilisant props.route.params.yourParamName. Alors écrivez votre code comme suit :

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

const ActivityScreen = props => {
  return (
    <View style={styles.header}>
      <Text>This is the Avtivity page</Text>
      {
          //This does not work, gives no error, just blank
      }
      <Text>{props.route.params.activityTitle}</Text>
      <Text>{props.route.params..activityID}</Text>
    </View>
  );
}
1
Kishan Bharda 10 oct. 2020 à 04:42