在React中使用Redux时,我在创建const warehouse的那一行出现了一个警告,即默认参数应该是最后的default-param-last.是我创建代码的方式出了问题吗? 还是有更好的代码?
这是我的代码
import {SAVE_ACTION} from '../actions/save-action';
cons initialState = {
datasToSave:[]
};
const warehouse = (state = initialState, {type, payload}) => {
switch(type) {
case SAVE_ACTION: {
const {datasToSave} = payload
return {
...state,
dataToSave
};
}
default:
return state;
}
};
export default warehouse;
为你的动作参数添加一个默认参数。
import {SAVE_ACTION} from '../actions/save-action';
cons initialState = {
datasToSave:[]
};
const warehouse = (state = initialState, {type, payload} = {}) => {
switch(type) {
case SAVE_ACTION: {
const {datasToSave} = payload
return {
...state,
dataToSave
};
}
default:
return state;
}
};
export default warehouse;
你的代码并没有什么问题 你的代码没有什么问题。default-param-last
eslint规则的意思是,在这种情况下,你需要在两个参数上都指定一个默认值,或者禁用该行的规则。该规则希望你做的是 ({type, payload}, state = initialState) =>
但这是行不通的,因为redux会以不同的顺序调用你的reducer的参数。我会设置动作参数的默认值来解决这个问题:)。