【发布时间】:2022-01-13 23:00:53
【问题描述】:
我正在提交表单并获取 2 个 API。第一个 API 给了我一个令牌值,然后我需要它作为第二个 API 的数据。我将令牌放入const[token, setToken] = useState();。
收到令牌后,我使用setToken 来存储令牌。现在我希望这个令牌用于我的下一个 API 调用。但setToken 在第二个 API 调用中未定义。
我都这样称呼:
axios
.request(options)
.then(function (response) {
console.log(response.data.id);
setToken(response.data.id)
})
.then(function(response) {
saveCard();
})
.catch(function (error) {
console.error(error);
});
saveCard() 是我调用第二个 API 的地方,它使用我之前设置的 token。在设置令牌之前,它正在调用saveCard() 函数。令牌完全设置后如何调用saveCard()函数。
【问题讨论】:
-
我将尝试自定义钩子解决方案,因为 useEffect 在我的情况下不起作用。是需要token的表单提交。
-
我不明白为什么你不能添加一个依赖于
token的useEffect钩子来执行你的第二个请求 -
当然,我可以在
useEffect中执行它,并将token作为依赖项,但在我的情况下,它必须在表单提交上完成。只有当我收到表单中的某些值以及token时,我才必须执行第二个 API 调用,然后我必须提交表单。 -
对不起,我没有意识到这是为了提交表单。我将撤回对副本的投票。您能否编辑您的原始问题以表明在提交表单时执行此代码?