Мой редуктор возвращает неопределенное, как если бы он не был добавлен в combReducers, но это - PullRequest
1 голос
/ 30 сентября 2019

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

redurs / index.js

// @flow
import { combineReducers } from "redux";
import blocks from "./blocks";
import users from "./users";
import add from "./add";
const rootReducer = combineReducers({
    blocks,
    users,
    add
});
export default rootReducer;

Редукторы / add.js

// @flow
import AnyAction from "redux";
import * as ActionTypes from "./../constants";

const initialState = {
    number: 0
};

export default function Add(state = initialState, action) {
    switch (action.type) {
        case ActionTypes.ADD:
            return Object.assign({}, state, {
                number: number + 1
            });
        default:
            return state;
    }
}

функция подключения

const { navigation, blocks, dispatch, number } = this.props;
.
.
.
const mapStateToProps = state => ({
    blocks: state.blocks,
    number: state.number
});

export default connect(mapStateToProps)(BlockList);


1 Ответ

1 голос
/ 30 сентября 2019

После объединения ваших редукторов вам необходимо получить доступ к состояниям вашего редуктора в mapStateToProps, используя объединенное имя редуктора. Вместо:

const mapStateToProps = state => ({
   blocks: state.blocks,
   number: state.number
});

Иметь это:

const mapStateToProps = state => ({
  blocks: state.blocks,
  number: state.add.number
});

Теперь, с помощью state.add.number, вы можете получить доступ к состоянию числа внутри вашего редуктора add.js.

Я пытался воссоздать вашу проблему здесь:

Edit loving-tharp-fe3ti

...