Actions must be plain objects. Use custom middleware for async actions.

版权声明:本文为博主原创文章,转载请注明原文出处。 https://blog.csdn.net/qq_41139830/article/details/82813337

这个问题网上有很详细的解释,这里我只说下我引起这个问题的原因。


我将Redux中的actoin封装到一个函数中后,在组件的一个方法中使用这个函数:

const getChangeInputValueAction = (value) => {
  type: CHANGE_INPUT_VALUE,
  value
};

handleInputChange(e) {
  const action = getChangeInputValueAction(e.target.value);
  store.dispatch(action);
}

然后就报错了,经过调试之后,发现我封装action时,ES6的语法打错了…
以至于const action = getChangeInputValueAction(e.target.value);这段代码得到的action变成了undefined

所以我的代码报这个错误的原因是:dispatch传了个值为undefined的参数

上面的getChangeInputValueAction箭头函数后面少些的一个圆括号,正确的写法如下:

const getChangeInputValueAction = (value) => ({
  type: CHANGE_INPUT_VALUE,
  value
});

仅供参考~

END!

猜你喜欢

转载自blog.csdn.net/qq_41139830/article/details/82813337