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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作可能没有未定义的“类型”属性。反应?相关的知识,希望对你有一定的参考价值。

我收到了这个错误

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

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

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

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

我正试图从外面派遣行动

答案

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
  };
}
另一答案

正如错误所示,您应该在调度type中没有的操作时指定testAction属性。将你的action密钥更改为type,它会起作用

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

Working demo

另一答案

你在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
  };
}

以上是关于操作可能没有未定义的“类型”属性。反应?的主要内容,如果未能解决你的问题,请参考以下文章

反应钩子形式 - 类型错误:无法读取 L 处未定义的属性“拆分”(get.ts:6)

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”

反应 - 未捕获的类型错误:无法读取未定义的属性“toLowerCase”

反应路由器:无法读取未定义的属性“路径名”

与 ES7 反应:未捕获的类型错误:无法读取未定义的属性“状态”[重复]

“未捕获的类型错误:无法在 Websocket Angular JS 上读取未定义的属性‘延迟’”