redux - 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);
解决方案
问题是这一行{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>
推荐阅读
- google-sheets - 在另一个工作表的谷歌工作表中查找非零行号
- javascript - 带有 Express Server CORS 设置的 ReactJS
- python - 匹配字典值并生成输出,无论它们在 Python 中是否匹配
- css - 媒体查询中忽略的 flexbox 属性
- django - 姜戈。查询集中的条件
- javascript - 在 react native 上调用 firebase.initializeApp() 问题
- python - Python SMTP 安全
- css - 如果只使用一行,是否可以使用 size classe 对 bootstrap 4 中的列重新排序?
- python - 在 Python 中将字符串转换为二维列表
- c# - 基本算术问题 C# (1.1 vs (1+(1/10))