Javascript 如果指定了多个类型和有效负载选项,为什么Redux承诺返回未解析的承诺?
我很难弄清楚为什么会发生这种情况,但本质上,Redux Promise在返回类似以下内容时对我来说效果很好:Javascript 如果指定了多个类型和有效负载选项,为什么Redux承诺返回未解析的承诺?,javascript,asynchronous,reactjs,redux,redux-promise,Javascript,Asynchronous,Reactjs,Redux,Redux Promise,我很难弄清楚为什么会发生这种情况,但本质上,Redux Promise在返回类似以下内容时对我来说效果很好: return { type: STORY_ACTIONS.STORY_SPOTIFY_REQUEST, payload: request } 但是,我现在需要像这样传递另一个信息 return { order: 0, // New field type: STORY_ACTIONS.STORY_SPOTIFY_REQU
return {
type: STORY_ACTIONS.STORY_SPOTIFY_REQUEST,
payload: request
}
但是,我现在需要像这样传递另一个信息
return {
order: 0, // New field
type: STORY_ACTIONS.STORY_SPOTIFY_REQUEST,
payload: request
}
这将导致未解决的承诺,而不是数据。我尝试将
order
重命名为类似position
或index
。。。仍然没有。您应该使用Redux Promise所需的meta
字段。Redux Promise使用Flux标准操作(FSA),它验证操作:
如您所见,有效密钥只有四个保留字。因此,您应该将order属性添加到“payload”或“meta”中。在
meta:{order:index}
中传递我需要的所有内容,谢谢
import isPlainObject from 'lodash.isplainobject';
const validKeys = [
'type',
'payload',
'error',
'meta'
];
function isValidKey(key) {
return validKeys.indexOf(key) > -1;
}
export function isFSA(action) {
return (
isPlainObject(action) &&
typeof action.type !== 'undefined' &&
Object.keys(action).every(isValidKey)
);
}
export function isError(action) {
return action.error === true;
}