Реагировать на собственный проход route.params для получения запроса - PullRequest
0 голосов
/ 16 апреля 2020

Я использую this.props.navigation.navigate('Details',{activity: item}) для передачи элемента на новую страницу. И я хочу сделать запрос на выборку, используя это действие. Я не могу понять, как передать элемент в запрос API. Кто-нибудь может мне ответить?

register = async () =>{
        var token = await AsyncStorage.getItem('id_token')
        console.log(token)
        fetch('http://192.168.0.1:8887/api/auth/activities/register',{
            method: 'POST',
            headers:{
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'Authorization': 'Bearer ' +token,
            },
            body: JSON.stringify({

            })

        })
    }
render(){
   const { activity } = this.props.route.params;
    return (  

       <View style={styles.container}>
          <ScrollView style={styles.content}>
             <Text style={styles.data}>Title:</Text>
             <Text style={styles.info}>{activity.name}</Text>
          </ScrollView>
             <Button title="register" onPress={this.register}></Button>
       </View>
      )
    }

В таком случае, как я могу передать данные в выборку?

1 Ответ

2 голосов
/ 16 апреля 2020

Все остальные ответы, предлагающие добавить его в ваш штат, неверны. Вы можете получить значение так же, как вы уже это делаете в функции render.

register = async () =>{
    const { activity } = this.props.route.params;
    const token = await AsyncStorage.getItem('id_token')

    fetch('http://192.168.0.125:8887/api/auth/activities/register',{
        method: 'POST',
        headers:{
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'Authorization': 'Bearer ' +token,
        },
        body: JSON.stringify({ activity })
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...