import React from 'react'; import { FlatList, ActivityIndicator, Text, View } from 'react-native'; export default class FetchExample extends React.Component { constructor(props){ super(props); this.state ={ isLoading: true} } componentDidMount(){ fetch(' { method: 'GET', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ firstParam: 'isoCode ', secondParam: 'internationalCode', thirdParam: 'name', fourthParam: 'code', FifthParam: 'group', SixthParam: 'id' }), }); } render(){ if(this.state.isLoading){ return( <View style={{flex: 1, padding: 20}}> <ActivityIndicator/> </View> ) } return( <View style={{flex: 1, paddingTop:20}}> <FlatList data={this.state.dataSource} renderItem={({item}) => <Text>{item.isoCode}, {item.internationalCode}, {item.name}, {item.code}, {item.group}</Text>} keyExtractor={({id}, index) => id} /> </View> ); } } 

I am the beginner of react native and i am trying to get data from api but i have an error about code.

possible unhandled promise rejection (id 0) typeerror undefined is not an object

I can't understand why there is no object

Hope for your help.

4

3 Answers

Please note that you cannot use body in GET Request. Please change it to POST.

You can not use body with GET request. If you want to pass params with GET request then the official way to work with query parameters is just to add them onto the URL. This is an example:

var url = new URL(""), params = {firstParam: 'isoCode ', secondParam: 'internationalCode', thirdParam: 'name', fourthParam: 'code', FifthParam: 'group', SixthParam: 'id'} Object.keys(params).forEach(key => url.searchParams.append(key, params[key])) fetch(url).then(/* … */) 

You can't use body in GET request. Although you can convert your JSON object to URL query parameters like this.

let url += '?'+Object.keys(params).map((k) => (k + '=' + encodeURIComponent(params[k]))).join('&') 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy