как получить данные axios.get и куда поместить их в исходное состояние редуктора - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь получить json array данные из json-server @port 3001, я хочу, чтобы эти данные перешли в исходное состояние моего редуктора в виде array. По сути, это приложение CRUD redux. Я думаю, что я не использую правильный синтаксис.

Это внутренние данные в json базе данных.

{
    "posts": [
        {
            "id": "2019-10-14T07:47:34.044Z",
            "title": "Shani",
            "message": "KHRP",
            "edititng": false
        },
        {
            "id": "2019-10-14T07:50:03.954Z",
            "title": "Shani",
            "message": "KHRPUR",
            "edititng": false
        },
        {
            "id": "2019-10-14T16:19:55.551Z",
            "title": "Sherry",
            "message": "BWP",
            "edititng": false
        }
    ]
}
const postReducer = (state = [], action) => {
    switch (action.type) {
        case 'ADD_POST':
            return state.concat([action.data]);
        case 'DELETE_POST':
            return state.filter((post) => post.id !== action.id);
        case 'EDIT_POST':
            return state.map((post) => post.id === action.id ? {
                ...post,
                editing: !post.editing
            } : post);
// I can add post with just.
axios.post('/posts', data) 
// in my ADD_POST action.

Но когда я пытаюсь получить все свои сообщенияна моей странице AllPost с axios.get('/posts', params) и многими другими методами, которые я пробовал, но я не смог получить данные. Еще одна вещь, которую я хотел спросить, должен ли я получить данные JSON и передать их для хранения напрямую? Если да, то как ..

1 Ответ

1 голос
/ 15 октября 2019

types.js

export const ADD_POST= 'ADD_POST';

action.js

import * as types from './types';

const setDocumentData = data => ({
  type: types.ADD_POST,
  data,
});

export const setData = details => dispatch => {
  dispatch(setDocumentData(details));
};

reducer.js

import * as types from 'store/actions/types';

const initialState = {
  application: {},
};

const Application = (state = initialState, action) => {
  switch (action.type) {
    case types.ADD_POST:
      let setOldData = {...state.application};
      setOldData = action.details;

      return {
        ...state,
        application: setOldData,
      };

    default:
      return state;
  }
};

...