reactjs - 如何通过连接在组件中使用状态
问题描述
我正在使用 reactjs 和 redux 来构建我的简单应用程序。我按照一些教程进行操作,但出现错误。
我的连接
const mapStateToProps = function(state) {
console.log(state) // WHAT IS FORMAT? {....}
return {
messages: state.messages // i don't know state contain messsages key
}
}
export default connect(mapStateToProps)(MyComponent);
和我的组件
const MyComponent= ({messages}) => (
<ul>
{messages.map(message => (
<Child
key={message.id}
{...message}
/>
))}
</ul>
)
我通过以下方式创建我的商店
createStore(
reducer, applyMiddleware(myMiddleware())
);
但我不知道state
格式。它是一些关键的对象吗?我在 tut 中找不到任何定义state
格式,并且出现错误
Uncaught TypeError: Cannot read property 'map' of undefined
如何理解和解决这个问题。
解决方案
提供给 connect 的 state 参数是一个包含当前 redux 状态的对象。您使用减速器创建的任何内容都将在此处提供。
有关更多信息,请参阅https://redux.js.org/api/store#getState。
在您的情况下,您可能尚未设置任何减速器,因此尚未填充消息存储对象。如果您完成本教程,它将带您完成设置。
推荐阅读
- python - ValueError 视图没有返回 HttpResponse 对象。它返回 None 而不是
- javascript - 为什么 window.setTimeout 返回错误?
- reactjs - react-native undefined 不是对象
- css - 返回 true 的 React 组件将仅接受通过内联样式的样式
- javascript - 使用 JavaScript 为嵌套对象操作 JSON 数据
- python-3.x - 将事件传播到比 Widget 更远的地方?
- sql-server - 在 SQL Server 中哪里可以找到自定义错误消息?
- python - 当从打开的 python 会话中“销毁”时,tkinter 冻结
- javascript - JavaScript 无法识别 HTML 值
- python - 使用本地 CPU 从 Python 进行 SQL 查询