Состояние не определено при использовании CombineReducers - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над проектом машинописного текста React и пытаюсь настроить редукс.

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

Страннокогда мое приложение запущено, state не определено (я регистрирую this.props, но ничего не имеет значения.

Я вижу, что действия отправляются с использованием redux-devtools, но это просто неработа.

Если я переместу мои редукторы в файл индекса, все, похоже, сработает.

Я не могу разобраться с этим ...

Пожалуйста, помогите!

Я буквально все перепробовал! Я занимался этим весь день. Как уже упоминалось, если не использовать комбинированные редукторы, эта проблема исчезнет.

Редуктор 1

const initState = []

const imageResults = (state = initState, action) => {
    switch (action.type) {
        case 'SEARCH_IMAGES' :
            return [...state, action.payload]
        default:
            return state;
    }
}

export default imageResults;

Редуктор 2

const initState = {
    term: "initial term"
}

const client = (state = initState, action) => {
    console.log(action.payload)
    switch (action.type) {
        case 'UPDATE_TERM' :
        return {
            ...state,
            term: action.payload
        }
        default:
        return state;
    }
}

export default client;

файл комбинированного редуктора

import {combineReducers} from 'redux';

import imageResults from './imageResults';
import client from './imageResults';

const reducer = combineReducers({
    imageResults: imageResults,
    client: client
})

export default reducer;

Когда приложение загружается, я ожидаю {term: «initial term», searchImages: ƒ, updateTerm: ƒ}

вместо, Я получаю: {term: undefined, searchImages: ƒ, updateTerm: ƒ}

Также мое состояние должно выглядеть следующим образом:

imageResults:{term: "initial term"}
client(pin): []

Но вместо этого это выглядит так: imageResults: [] client: []

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Может быть, вы неправильно импортировали?

import client from './client';
0 голосов
/ 03 апреля 2019

Дело в этом куске кода:

import imageResults from './imageResults';
import client from './imageResults';

Я считаю, что путь к клиенту должен быть другим

import client from './client';

Попробуйте передать правильное имя файла, пожалуйста

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