0
votes

Réagit Axios Response.json n'est pas une fonction

Je continue à recevoir une erreur que réponse.json n'est pas une fonction avec mes données de demande Axios. Je ne sais pas pourquoi comme ce code a fonctionné il y a deux jours ... j'ai essayé de jouer avec des promesses de voir si cela ferait une différence, mais il semble que le code est inférieur et que toute aide est très appréciée

import React, { Component } from 'react'
import TrackingRender from '../TrackingRender/TrackingRender'
import axios from 'axios'
import { Redirect } from 'react-router';


export class OrderTracking extends Component {
    constructor() {
        super()
        this.state = {
            loadingData: true,
            order: []
        }
    }
    async componentDidMount() {
        this._isMounted = true;
        if (this.state.loadingData) {
            try {
                const { id } = this.props.match.params
                const response = await axios.get(`http://localhost:5000/api/orders/${id}`)
                const data = await response.json()
                this.setState({
                    order: data,
                    loadingData: false
                })
                console.log(this.state)
            } catch (err) {
                console.log(err)
            }
        }

    }
    render() {
        if (!this.state.loadingData) {
            return (
                <div>
                    < TrackingRender order={this.state.order} />
                </div>
            )
        } else {
            return (
                <Redirect to='/orders' />
            )
        }

    }
}

export default OrderTracking



0 commentaires

3 Réponses :


2
votes

avec axios, vous n'avez pas besoin d'exécuter réponse.json () Vous venez d'obtenir la réponse brute telle qu'elle est.

Les données doivent être disponibles dans intervention.data


0 commentaires

0
votes

Pour obtenir des données de axios Vous devez utiliser intervention.data xxx


0 commentaires

0
votes

Vous n'avez pas besoin d'appeler .json () code> sur un axios code> réponse. Il est déjà analysé. Vous pouvez obtenir la valeur du corps de réponse à partir de intervention.data ​​code>.

const response = await axios.get(`http://localhost:5000/api/orders/${id}`)

this.setState({
   order: response.data,
   loadingData: false
})


0 commentaires