как удалить объект из массива в redux

#redux #react-redux

#redux #реагировать-redux

Вопрос:

это мой код, могу ли я помочь с этим, как правильно написать функцию slice

  export default function(state={inputs:[ ]}, action) {
        console.log(action.index);
        switch (action.type) {
        case APPEND_INPUT:
            return { ...state, inputs: state.inputs.concat({value:"",key:"1",type:'input'})};
        case APPEND_TEXTAREA:
            return { ...state, inputs: state.inputs.concat({value:"",key:"",type:'textarea'})};
        case APPEND_EMAIL:
            return { ...state, inputs: state.inputs.concat({value:"",key:"",type:'email'})};
        case REMOVE_INPUT:
            return  {inputs: state.inputs.slice(0)};

        default:
            return state;
        }
    }
  

Ответ №1:

Или:

 {inputs: state.inputs.filter((_, i) => i !== action.index))
  

Ответ №2:

Разрежьте массив по индексу и соедините его с фрагментом, начиная с индекса 1 и далее:

 { 
    inputs: state.inputs.slice(0, action.index).concat(state.inputs.slice(action.index   1))
}
  

Если вы используете ES6, вы можете сделать это вместо concat:

 { 
    inputs: [...state.inputs.slice(0, action.index), ...state.inputs.slice(action.index   1)]
}
  

Комментарии:

1. он не работает, когда он переходит в состояние по умолчанию, можете ли вы, пожалуйста, помочь мне с этим