所以我们可能在减速器中有这个:

const defaultState = {...};

export const userReducer = (state = defaultState, action: any) => {
   // ...
}


有什么方法可以为每个对userReducer的调用获取defaultState对象?
像这样:

const getDefaultState = () => ({...});

export const userReducer = (state = getDefaultState(), action: any) => {
   // ...
}


这在JS中可行吗?它对于Redux减速器可能没有用,但总的来说很好奇。

最佳答案

是的,正如@blex指出的那样,您的意图是完全可行的。

您的代码段中有一个较小的拼写错误,这可能会导致您出现问题:具有默认值(即state)的参数必须在具有非默认值(即action)的参数之后排序。

这是一个极简主义的例子:



let x = () => 3;
let y = (a, b = x()) => a + b;

console.log(y(5)); // 8
console.log(y(5, 1)); // 6

10-02 17:50