TO-DO-LIST React + Redux - PullRequest
       0

TO-DO-LIST React + Redux

0 голосов
/ 18 апреля 2020

как выбрать ложь в истину (или прямо противоположную) в CASE Изменить статус .

[Похоже, ваш пост в основном кодовый; пожалуйста, добавьте еще некоторые детали. Похоже, ваш пост в основном кодовый; пожалуйста, добавьте больше деталей.]

import React from 'react'
import shortid from 'shortid';

const ADD_TASK = 'ADD_TASK'
const EDIT_STATUS = 'EDIT_STATUS'
const TASK_DELETE = 'TASK_DELETE'

const initialState = {
    tasks: []
};


const mainReducer = (state = initialState, action) => {
    switch (action.type) {
        case ADD_TASK: {

            return {
                ...state,
                tasks: [{
                    id: shortid.generate(),
                    task: action.task,
                    status: false
                }, ...state.tasks]

            }

        }

        case EDIT_STATUS: {
            return {

            }
        }


    default:
        return state
    }
}

export const addTask = task => ({type: 'ADD_TASK', task});
export const editStatus = id => ({type: 'EDIT_STATUS', id})



export default mainReducer;



Ответы [ 3 ]

0 голосов
/ 18 апреля 2020
return {
    ... state, 
    tasks: state.tasks.map(t => (t.id === action.id
        ? {
           ...t,
            status: !t.status,
        } : t)), 
};
0 голосов
/ 18 апреля 2020

Хотя мне неясно полная реализация. Исходя из этого вопроса, я предполагаю, что вы хотите переключить статус задачи между true и false для идентификатора задачи, предоставленного в полезной нагрузке действия EDIT_STATUS. По моему мнению, приведенный ниже код может быть возможной реализацией.

case EDIT_STATUS: {
       return {
           ...state,
           tasks: tasks.map(task => {
              if(task.id == action.id) {
                 task.status = !task.status
              }
              return task
           })
       }
 }
0 голосов
/ 18 апреля 2020

Есть несколько способов сделать это, но похоже, что вы ищете logi c в редукторе, чтобы эта функция работала


    case EDIT_STATUS: {
        return {
          ...state,
          tasks: state.tasks.filter(task => task.id == action.id ? {...task, status: !task.status} : task
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...