【发布时间】:2021-10-26 20:55:15
【问题描述】:
我有一段代码正在使用来自 redux saga 的 yield call api,它正在调用一个函数并提供一个输入。
它正在调用一个简单的 POST 函数,该函数在点击 api 时返回响应。
此函数的输入是一个名为code 的字符串,它是通过url 中的参数设置的。我们使用URLSearchParams 根据关键字从 URL 中获取特定参数。
问题的根源似乎在于此 URLSearchParams 使用窗口对象来获取代码。这导致 yield 调用出现问题并给我以下 Flow 错误:
无法调用
call,因为:其中一个属性context缺失 函数 1 但存在于对象类型 [2] 中。或属性context是 在函数 1 中缺失,但存在于对象类型 [3] 中。或财产 函数中缺少context
代码如下:
const params = new URLSearchParams(window.location.search);
const code = params.get('code');
const res = yield call(confirmCode, code); // This call is where the error is happening
这是它正在调用的 confirmCode 函数:
export function confirmCode(code: string): Promise<TResp<void>> {
return request(`/agent/v1/confirm-code/${code}`, {
method: 'POST',
mode: 'cors',
});
}
【问题讨论】:
标签: javascript flowtype redux-saga yield