这个问题网上有很详细的解释,这里我只说下我引起这个问题的原因。
我将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!