在化简函数中,如果不切换块,通常会返回默认状态。
function reducer(state = initialState, action: any): any {
switch (action.type) {
case SOME_TYPE:
return Object.assign({}, state, {
someBoolean: false
});
}
return state;
}
我尝试了dispatch(undefined, {type: undefined})
,但是我收到的错误操作可能没有未定义的类型。
有没有一种方法可以调度将返回默认状态的操作。
PS:只是尝试另一种方法。当然,我们可以有一些操作类型并返回默认状态。
答案 0 :(得分:0)
不确定我是否正确获取了此信息,但是只需返回以下状态即可:
function reducer(state = initialState, action: any): any {
switch (action.type) {
case SOME_TYPE:
return state;
}
return state;
}
或重置您的初始状态,请执行以下操作:
function reducer(state = initialState, action: any): any {
switch (action.type) {
case SOME_TYPE:
return initialState;
}
return state;
}
答案 1 :(得分:0)
如果我对您的理解正确,则希望将状态重置为初始值。
switch (action.type) {
case SOME_TYPE:
return Object.assign({}, state, {
someBoolean: false
});
case 'DEFAULT':
return initialState;
default:
return state;
}
然后只需将其发送:
dispatch({ type: 'DEFAULT' });
注意:请记住在减速器中添加一个default
盒。
答案 2 :(得分:0)
您应该使用操作的付款方式来更新状态,然后可以检查是否有任何有效负载,使用它,否则返回初始状态
TArray<UCameraComponent*> CameraComps;
并发送function reducer(state = initialState, action: any): any {
switch (action.type) {
case SOME_TYPE:
return Object.assign({}, state, {
someBoolean: action.payload.someBoolean || initialState.someBoolean
});
}
return state;
}
:
undefined
但是更好的方法是让dispatch({
type: SOME_TYPE,
payload: {
someBoolean: undefined
}
});
恢复为type
initialState