Redux: объединить редукторы - PullRequest
0 голосов
/ 15 марта 2020

при использовании combReducers при получении ошибки:

Объекты недопустимы как дочерние элементы React (найдено: объект с ключами {todos, counter}). Если вы хотите отобразить коллекцию дочерних элементов, используйте вместо этого массив.

Ниже приведен код:

import { createStore } from "redux";
import { combineReducers } from "redux";
import counter from "./reducers/counter";
import todos from "./reducers/todos";

const reducer = combineReducers({
  todos,
  counter
});

export default createStore(reducer);

1 Ответ

0 голосов
/ 15 марта 2020

Проблема в этой строке {this.props.count} (еще раз, пожалуйста, добавьте это к вопросу, а не как ответ). Здесь вы пытаетесь отобразить весь объект состояния, который вы отобразили, из-за редукса, вызывая ошибку.

Поскольку вы изменили state, добавив два редуктора вместо одного, как и раньше, выполнение count: state не то же самое больше. Я предполагаю, что вы собираетесь визуализировать счетчик со счетчика-редуктора.

Вам нужно изменить способ доступа к нему. Я бы порекомендовал изменить вашу mapStateToProps функцию.

const mapStateToProps = state => ({
  count: state.counter,
  todos: state.todos
});

Затем, чтобы отобразить счетчик, сделайте это:

<Text style={styles.counter} onPress={this.props.reset}>
  {this.props.count}
</Text>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...