我试图useEffect
在我的 React 应用程序中使用,但也更模块化地重构事物。下面显示的是实际工作代码的核心。它驻留在 Context Provider 文件中并执行以下操作: 1. 调用 AWS Amplify 以获取最新的 Auth Access Token。Authorization
2.当对 API 端点进行 Axios GET 调用时,以标头的形式使用此令牌。
这很好用,但我认为将步骤#1 移到useEffect
上面自己的构造中会更有意义。此外,在这样做时,我还可以将标头对象存储为它自己的 Context 属性,然后 GET 调用可以引用该属性。
不幸的是,我现在可以从控制台日志语句中看到,当 GET 调用开始时,尚未检索到 Auth Access Token。所以重构尝试失败了。
useEffect(() => {
const fetchData = async () => {
const config = {
headers: { "Authorization":
await Auth.currentSession()
.then(data => {
return data.getAccessToken().getJwtToken();
})
.catch(error => {
alert('Error getting authorization token: '.concat(error))
})
}};
await axios.get('http://127.0.0.1:5000/some_path', config)
.then(response => {
// Process the retrieved data and populate in a Context property
})
.catch(error => {
alert('Error getting data from endpoint: '.concat(error));
});
};
fetchData();
}, [myContextObject.some_data]);
有没有办法将我的代码重构为两个useEffect
实例,以便第一个在第二个开始之前完成?