我有以下操作代码:
let nextTodoId = 0
export const addTodo = text => ({
type: 'ADD_TODO',
id: nextTodoId++,
text
})
export const setVisibilityFilter = filter => ({
type: 'SET_VISIBILITY_FILTER',
filter
})
export const toggleTodo = id => ({
type: 'TOGGLE_TODO',
id
})
export const getResult = () => { type: 'GET_RESULT' }
export const VisibilityFilters = {
SHOW_ALL: 'SHOW_ALL',
SHOW_COMPLETED: 'SHOW_COMPLETED',
SHOW_ACTIVE: 'SHOW_ACTIVE'
}
当调度“getResult”时,我收到此错误:“操作必须是普通对象”。
我没有归还这样的物体吗?
export const getResult = () => { type: 'GET_RESULT' }
如果我将上述内容更改为:
export const getResult = { type: 'GET_RESULT' }
然后一切都很好
即使用可能的解决方案修改代码后,我仍然会收到错误
答案 0 :(得分:2)
您的代码
export const getResult = () => { type: 'GET_RESULT' }
转化为
var getResult = function() {
{ type: 'GET_RESULT' }
};
返回undefined,因此返回错误。如果将其更改为表达式,它将起作用:
export const getResult = () => ({ type: 'GET_RESULT' })
那是因为它转化为:
var getResult = function() {
return { type: 'GET_RESULT' };
};