Как удалить данные из БД с использованием приставки? - PullRequest
0 голосов
/ 09 января 2019

Я пытался реализовать избыточность, и я могу публиковать данные в базе данных с использованием избыточности, а затем извлекать результаты в ответ. Но у меня возникают трудности с подходом к редуктору и выполнением удаления.

Ранее я пытался использовать функцию, которая удаляла бы данные в базе данных через sqlite, но со смешанными результатами. Если память мне не изменяет, я мог бы использовать метод-прототип для удаления данных из базы данных без изменения состояния.

 import request from 'superagent'

 export function receiveData(data) {
     return {
         type: 'RECEIVE_DATA',
         payload: data
     }
 }

 export function fetchData() {
     return (dispatch) => {
         request.get('/api/v1/data')
         .then((res) => {
             return res.body
         }).then(data => {
             dispatch(receiveCats(data))
         })
     }
 }


function reducer(state = [], action) {
    switch (action.type) {
        case 'RECEIVE_DATA':
            return action.payload
        case 'ADD_DATA':
            return action.add
        default:
            return state
    }   
}

// case 'DELETE_CAT':
////// return action.del
// to be added

export default reducer

    export function addData(data) {
        return dispatch => {
            request
            .post('/api/v1/data')
            .send(data)
            .end((err, res) => {
                if (err) {
                    console.error(err.message)
                    return
                }
                dispatch(addDataAction(data))
            })
        }
    }

    function addDataAction() {
        return {
            type: 'ADD_DATA',
            payload: {
                name: name,
                // age: age,
                // address: address
            }
        }
    }

Я хочу понять, как работает Redux, но для меня это препятствие.

Любая помощь будет высоко ценится. Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Предполагая, что вы реализовали API удаления / удаления, который возвращает удаленный идентификатор

  function reducer(state = [], action) {
            switch (action.type) {
                case 'RECEIVE_DATA':
                    return Object.assign({},state, {data:action.payload});
                case 'ADD_DATA':
                    return Object.assign({},state, data.concat(action.add));
                case 'REMOVE_DATA':
                    return Object.assign({},state, 
                   {data:state.data.filter((obj)=>obj.id!==id)});
                default:
                    return state
            }   
        }

Попробуйте что-то подобное, всегда помните, чтобы использовать понятие неизменности. В этом примере он вернет новый объект, а не обновит предыдущий.

0 голосов
/ 09 января 2019

Может быть, вы что-то не так поняли. Там нет ничего под названием remove data from db using redux или post data into the database using redux.

То, что вы сделали в приведенном выше примере в редукторе addData до post data into the database using redux, просто вызывает запрос на публикацию на сервере и затем сохраняет эти опубликованные данные в Redux store .

Если вы хотите удалить данные из вашей базы данных, позвоните по номеру delete api и сохраните результат запроса в Redux store.

Redux - это просто место для хранения application state, это состояние будет определять внешний вид приложения.

Вы можете прочитать Введение в Redux , чтобы понять, что такое Redux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...