Javascript 我可以将动态值传递给ES6的模板文本吗?
当我点击该API调用时,url显示: 本地主机:9000/api/未定义/未定义/学校/ 我试图将从第一个API调用获得的数据作为参数传递给第二个API?是否不允许通过模板文本传递动态数据?由于获取/api/cities数据是异步操作,因此需要等待结果。只是为了证明概念:Javascript 我可以将动态值传递给ES6的模板文本吗?,javascript,reactjs,jsx,axios,Javascript,Reactjs,Jsx,Axios,当我点击该API调用时,url显示: 本地主机:9000/api/未定义/未定义/学校/ 我试图将从第一个API调用获得的数据作为参数传递给第二个API?是否不允许通过模板文本传递动态数据?由于获取/api/cities数据是异步操作,因此需要等待结果。只是为了证明概念: getSelectedCityId() { let citiName citiId; axiosInstance .get("/api/cities") .then(re
getSelectedCityId() {
let citiName
citiId;
axiosInstance
.get("/api/cities")
.then(response => {
if (response.status === 200 && response.data) {
citiName = this.state.city;
citiId = this.state.city.city_id;
}
})
.catch(error => {});
let url = `/api/${citiName}/${citiId}/schools/`;
axiosInstance
.get(url)
.then(response => {
})
.catch(error => {
console.log(error);
});
}
由于获取/api/cities数据是异步操作,因此需要等待结果。只是为了证明概念:
getSelectedCityId() {
let citiName
citiId;
axiosInstance
.get("/api/cities")
.then(response => {
if (response.status === 200 && response.data) {
citiName = this.state.city;
citiId = this.state.city.city_id;
}
})
.catch(error => {});
let url = `/api/${citiName}/${citiId}/schools/`;
axiosInstance
.get(url)
.then(response => {
})
.catch(error => {
console.log(error);
});
}
这将确保第二次AXIOS调用在第一次调用完成且有有效URL可传递之前不会进行
这将确保第二个AXIOS调用在第一个调用完成并且有有效的URL要传递之前不会进行。您可以这样做,但在这种情况下,它不起作用,因为您试图设置作为异步进程一部分的变量。您应该通读.PS-在这种情况下,如果@安迪,我有点明白了!谢谢你的投入!您可以,但在本例中,它不起作用,因为您试图设置作为异步进程一部分的变量。您应该通读.PS-在这种情况下,如果@安迪,我有点明白了!谢谢你的投入!这是一个比我更简洁的答案。我将向你们屈服@Joshuauunderwood同意。不过,我喜欢分解。将代码分解成更小的函数更易于阅读和调试。不管怎样,我还是选择了你的解决方案!这是一个比我更简洁的答案。我将向你们屈服@Joshuauunderwood同意。不过,我喜欢分解。将代码分解成更小的函数更易于阅读和调试。不管怎样,我还是选择了你的解决方案!
getSelectedCityId() {
let citiName
citiId;
axiosInstance
.get("/api/cities")
.then(response => {
if (response.status === 200 && response.data) {
citiName = this.state.city;
citiId = this.state.city.city_id;
this.getSelectedCityIdStepTwo(`/api/${citiName}/${citiId}/schools/`);
}
})
.catch(error => {});
}
getSelectedCityIdStepTwo(url) {
axiosInstance
.get(url)
.then(response => {
})
.catch(error => {
console.log(error);
});
}