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
3 Réponses :
avec axios, vous n'avez pas besoin d'exécuter Les données doivent être disponibles dans réponse.json () code> Vous venez d'obtenir la réponse brute telle qu'elle est. P>
intervention.data code> p>
Pour obtenir des données de axios code> Vous devez utiliser intervention.data code>
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
})