首页 > 解决方案 > Redux : combineReducers

问题描述

使用 combineReducers 时出错:

对象作为 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);

标签: redux

解决方案


问题是这一行{this.props.count}(再次,请将此添加到问题中,而不是作为答案)。在这里,您尝试渲染从 redux 映射的整个状态对象,从而导致错误。

由于您将 更改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>

推荐阅读