如何调度动作以返回默认状态

时间:2019-11-20 14:14:23

标签: javascript reactjs redux react-redux

在化简函数中,如果不切换块,通常会返回默认状态。

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:只是尝试另一种方法。当然,我们可以有一些操作类型并返回默认状态。

3 个答案:

答案 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