redux-api-middleware 抛出获取未定义
redux-api-middleware throws fetch is not defined
我最近将 redux-api-middleware
从 2.3.0 升级到 3.0.1 当 运行 我用 jest@22.2.1
测试时,我得到这个 ReferenceError
:
ReferenceError: fetch is not defined
19 | export function sortPolicyChain (payload: Array<ChainPolicy>): SortPolicyChainAction {
20 | return { type: 'SORT_POLICY_CHAIN', payload }
> 21 | }
22 |
23 | export type UpdatePolicyInChainAction = { type: 'UPDATE_POLICY_IN_CHAIN', policyConfig: ChainPolicy }
24 | export function updatePolicyInChain (policyConfig: ChainPolicy): UpdatePolicyInChainAction {
at Object.<anonymous> (node_modules/redux-api-middleware/lib/index.cjs.js:404:3)
at Object.<anonymous> (app/javascript/src/Policies/actions/PolicyChain.jsx:21:27)
at Object.<anonymous> (spec/javascripts/Policies/actions/PolicyChain.spec.jsx:3:20)
堆栈跟踪指向 PolicyChain.jsx 中的这一行:
export function fetchChain (serviceId: string): RSSAAction {
return {
[RSAA]: {
endpoint: `/admin/api/services/${serviceId}/proxy/policies.json`,
method: 'GET',
credentials: 'same-origin',
types: [REQUEST, SUCCESS, FAILURE]
}
}
}
If provided, the fetch option must be a function that conforms to the
Fetch API. Otherwise, the global fetch will be used.
但是好像找不到全局fetch。有什么想法吗?
代码库可以在 github.
中找到
发生这种情况是因为 Jest 在 Node.js 内部运行,它没有全局 fetch()
。您可以通过安装 isomorphic-fetch
并将其添加到 Jest setupFiles
:
来解决此问题
require('isomorphic-fetch');
将createMiddleware
与您自己的提取编译函数一起使用
https://github.com/agraboso/redux-api-middleware#createmiddlewareoptions
我最近将 redux-api-middleware
从 2.3.0 升级到 3.0.1 当 运行 我用 jest@22.2.1
测试时,我得到这个 ReferenceError
:
ReferenceError: fetch is not defined
19 | export function sortPolicyChain (payload: Array<ChainPolicy>): SortPolicyChainAction {
20 | return { type: 'SORT_POLICY_CHAIN', payload }
> 21 | }
22 |
23 | export type UpdatePolicyInChainAction = { type: 'UPDATE_POLICY_IN_CHAIN', policyConfig: ChainPolicy }
24 | export function updatePolicyInChain (policyConfig: ChainPolicy): UpdatePolicyInChainAction {
at Object.<anonymous> (node_modules/redux-api-middleware/lib/index.cjs.js:404:3)
at Object.<anonymous> (app/javascript/src/Policies/actions/PolicyChain.jsx:21:27)
at Object.<anonymous> (spec/javascripts/Policies/actions/PolicyChain.spec.jsx:3:20)
堆栈跟踪指向 PolicyChain.jsx 中的这一行:
export function fetchChain (serviceId: string): RSSAAction {
return {
[RSAA]: {
endpoint: `/admin/api/services/${serviceId}/proxy/policies.json`,
method: 'GET',
credentials: 'same-origin',
types: [REQUEST, SUCCESS, FAILURE]
}
}
}
If provided, the fetch option must be a function that conforms to the Fetch API. Otherwise, the global fetch will be used.
但是好像找不到全局fetch。有什么想法吗?
代码库可以在 github.
中找到发生这种情况是因为 Jest 在 Node.js 内部运行,它没有全局 fetch()
。您可以通过安装 isomorphic-fetch
并将其添加到 Jest setupFiles
:
require('isomorphic-fetch');
将createMiddleware
与您自己的提取编译函数一起使用
https://github.com/agraboso/redux-api-middleware#createmiddlewareoptions