ZamarShoo
@ZamarShoo
React/Vue, Node/PHP, Wordpress/Drupal

Как правильно изменить свойство элемента массива?

Как правильно сделать, чтобы скопировал стэйт, но при этом по входящему айди менял active на противоположный?

const CHECKED_POST = 'CHECKED_POST'

let initialState = {
    checkboxes: [
        {id: 1, message: 'Встать рано утром', active: false},
        {id: 2, message: 'Скушать вкусный завтрак', active: false},
        {id: 3, message: 'Провести тренировку', active: false},
        {id: 4, message: 'Поработать', active: false},
        {id: 5, message: 'Встретиться с друзьями', active: false}
    ]
}

const todoReducer = (state= initialState, action) => {

    switch (action.type) {
        case CHECKED_POST: {
            return {
                ...state,
                checkboxes: [...state.checkboxes.filter((id) => {
                    if (id !== action.id) {
                        return {
                               //Как правильно?
                        }
                    }
                })]
            }
        }

        default:
            return state
    }
}

export const checkedPost = (id) => (dispatch) => dispatch({type: CHECKED_POST}, id)


export default todoReducer
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
0xD34F
@0xD34F
state.checkboxes.map(n => n.id === action.id
  ? { ...n, active: !n.active }
  : n
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы