【发布时间】:2020-01-30 20:10:38
【问题描述】:
我尝试使用函数从 API 获取数据,然后在我的 React 提供程序中设置状态。
如果我像这样直接在componentDidMount 中这样做,效果很好:
componentDidMount() {
axios({
method: "post",
url: "https://example.com",
// data: formData,
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}
}).then(res => {
this.setState({
TabPass: res.data
});
});
}
我试图获得相同的结果,但将 axios 放入一个单独的文件中,一旦获得数据,我就会在我的提供程序中执行 setState。
我在 api.js 中试过这个
export function GetPass ()
{
axios({
method: "post",
url: https://example.com",
// data: formData,
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}
})
.then(res => {
return res.data;
}
)
}
在 Provider.js 中
componentDidMount() {
const Tab = GetPass();
this.setState({
TabPass:Tab,
})
}
}
标签未定义
【问题讨论】:
-
请发布不适合您的代码,以便我们指出需要修复的地方。
-
这是因为你没有等待调用完成,你的axios请求是异步的
-
我知道我不知道的是,当我使用 setState 时,如何使用单独的函数等待调用完成
-
标签仍未定义