动作可能没有未定义的“类型”属性。在反应吗?

时间:2019-04-02 06:15:52

标签: reactjs redux

我收到此错误

动作可能没有未定义的“类型”属性。你拼错了常量吗?

这是我的代码 https://codesandbox.io/s/50l75oqnyx

问题在这一行的index.js 行号:12

store.dispatch(testAction('StackOverflow'));

我正在尝试从外部调度动作

3 个答案:

答案 0 :(得分:1)

由于错误提示,在分派type中没有的操作时,应指定一个testAction属性。将您的action密钥更改为type,它将起作用

export function testAction(text) {
  console.log(text);
  console.log("ddddd");
  return {
    type: Actions.SET_IMAGE,
    text
  };
}

Working demo

答案 1 :(得分:0)

abc.actions.js下的返回对象中,您应该返回一个对象,该对象的属性为“ type”,然后返回要执行的动作。但是您不是在定义类型,而是在定义action:Actions.SET_IMAGE的正确方法是type: Actions.SET_IMAGE

export function testAction(text) {
  console.log(text);
  console.log("ddddd");

  return {
    type: Actions.SET_IMAGE,
    text
  };
}

答案 2 :(得分:0)

您在 acb.action.js 处执行的操作不包含type

export function testAction(text) {
  console.log(text);
  console.log("ddddd");
  return {
    action: Actions.SET_IMAGE,
    text
  };
}

,而您的减速器将采用payload(abc.reducer.js第12行)而不是text,因此应更改为

export function testAction(text) {
  console.log(text);
  console.log("ddddd");
  return {
    type: Actions.SET_IMAGE,
    payload: text
  };
}