如何创建新对象作为默认 arg 对象
How to create new object as default arg object
所以我们可能在减速器中有这个:
const defaultState = {...};
export const userReducer = (state = defaultState, action: any) => {
// ...
}
有什么方法可以为每次调用 userReducer 获取 defaultState 对象吗?
像这样:
const getDefaultState = () => ({...});
export const userReducer = (state = getDefaultState(), action: any) => {
// ...
}
这在 JS 中可行吗?它可能对 Redux reducer 没有用,但总的来说我很好奇。
是的,正如@blex 所指出的,您的意图是完全可行的。
您的代码片段有一个小错字,可能会导致您出现问题:具有默认值的参数(即 state
)必须排在具有非默认值的参数(即 action
)之后。
这是一个极简主义的例子:
let x = () => 3;
let y = (a, b = x()) => a + b;
console.log(y(5)); // 8
console.log(y(5, 1)); // 6
所以我们可能在减速器中有这个:
const defaultState = {...};
export const userReducer = (state = defaultState, action: any) => {
// ...
}
有什么方法可以为每次调用 userReducer 获取 defaultState 对象吗? 像这样:
const getDefaultState = () => ({...});
export const userReducer = (state = getDefaultState(), action: any) => {
// ...
}
这在 JS 中可行吗?它可能对 Redux reducer 没有用,但总的来说我很好奇。
是的,正如@blex 所指出的,您的意图是完全可行的。
您的代码片段有一个小错字,可能会导致您出现问题:具有默认值的参数(即 state
)必须排在具有非默认值的参数(即 action
)之后。
这是一个极简主义的例子:
let x = () => 3;
let y = (a, b = x()) => a + b;
console.log(y(5)); // 8
console.log(y(5, 1)); // 6