При заданном действии «LoadEntries» редуктор «entry» вернул неопределенное значение. - PullRequest
0 голосов
/ 04 января 2019

Когда я запускаю свое приложение, я получаю следующие ошибки.

Ошибка: данное действие «LoadEntries» вернуло «записи» редуктора как неопределенное.Чтобы игнорировать действие, вы должны явно вернуть предыдущее состояние.Если вы хотите, чтобы этот редуктор не содержал значения, вы можете вернуть null вместо undefined.

Ниже приведен файл действий.

import axios from 'axios';

export const loadEntries = () => {

     return dispatch => {

        axios.get('https://jsonplaceholder.typicode.com/posts')
             .then(res => {
                dispatch({type: 'LoadEntries', payload: res.data});
            }).catch(error => {
                console.error("Error: " + error);
             })    
    }
}

Ниже приведен редуктор.

export default (state = [], action) => {

    console.log("Action: " + JSON.stringify(action) + " State: " + state);
    switch (action.type) {
        case 'LoadEntries':
            return action.payload;
        default:
            return state;
    }
}

Когда я запускаю приложение, я получаю следующую консоль входа для редуктора.

Действие: {"type": "LoadEntries"} Состояние:

Ниже приведен файл Index.js.

import React from 'react';
import ReactDOM from 'react-dom';
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import {Provider} from 'react-redux'
import reducer from './store/reducer';
import App from './App';
import { BrowserRouter } from 'react-router-dom';

const store = createStore(reducer, applyMiddleware(thunk));


ReactDOM.render(
    <Provider store={store}>
        <BrowserRouter>
            <App />
        </BrowserRouter>
    </Provider>,

    document.getElementById('root'));

Также прилагается скриншот консоли.

console screenshot

Спасибо.

1 Ответ

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

Вы не возвращаете действие с разрешением или отклонением обещания в диспетчере действий.

Ваш диспетчер всегда должен возвращать действие.

Я бы также рекомендовал обрабатывать отклонение отдельным действием.

...