Я хочу вызвать API дважды в одном классе, но когда я вызываю другой, первый больше не работает. Что я должен делать?
Это код ---> P.S Это просто код запроса. Я не пишу код рендеринга
export class Ajax1 extends Component{
constructor(props){
super(props)
this.state = {
info:[],
info2:[]
}
}
async componentDidMount(){
const url = "https://jsonplaceholder.typicode.com/users"
const res=await fetch(url)
const data= await res.json()
this.setState({info:data})
}
async componentDidMount(){
const url = "https://jsonplaceholder.typicode.com/posts"
const res=await fetch(url)
const data= await res.json()
this.setState({info2:data})
}
У вас не должно быть более одной функции componentDidMount
в одном классе:
async componentDidMount(){
this.fetchInfo();
this.fetchInfo2()
}
async fetchInfo(){
const url = "https://jsonplaceholder.typicode.com/users"
const res=await fetch(url)
const data= await res.json()
this.setState({info:data})
}
async fetchInfo2(){
const url = "https://jsonplaceholder.typicode.com/posts"
const res=await fetch(url)
const data= await res.json()
this.setState({info2:data})
}
Да, вы правы, я обновлю свой ответ, спасибо
Также я рекомендую вам использовать Promise.all.
О да, извините, я перепутал имя с Task.WhenAll С#.
В дополнение к этому, если вы хотите обновить состояние только один раз, когда оба вызова API завершены, вы можете использовать Promise.whenAll() в функции componentDidMount, чтобы установить состояние только после завершения обоих обещаний.