【发布时间】:2023-03-21 05:19:02
【问题描述】:
我有一个项目,我使用 redux-saga 通过 axios 进行 API 调用并将数据返回到存储,然后我使用 redux mapStateToProps,现在我想 map() 它并在我的 DOM 上显示它,但我得到“未定义”。
有两件事不断发生:
- 要么没有及时调用数据,要么渲染速度很快,所以它说它未定义。
- 我得到 map() 不是函数或 {blog.id} -- id 未定义。
当我 console.log(blogs) 看到我的博客数组时,我不确定我做错了什么。是不是因为 blogs 是一个数组,所以我需要做某种 for 循环来遍历每个项目然后映射它?
这是我的主要代码块和控制台日志
import React, {Component} from 'react';
import {connect} from 'react-redux'
import {loadBlogs} from '../../store/actions/blogActions'
class Bloglist extends Component {
componentDidMount() {
this.props.loadBlogs();
}
render() {
const {blogs} = this.props
console.log(blogs)
return (
<div>
<h1>{blogs.map(blog => (
<span>{blog.id}</span>
))}</h1>
</div>
)
}
}
const mapStateToProps = blogs => ({
blogs
})
const mapDispatchToProps = dispatch => ({
loadBlogs: () => dispatch(loadBlogs()),
})
export default connect(mapStateToProps, mapDispatchToProps)(Bloglist)
这是一个控制台日志示例和一个错误:
Uncaught TypeError: blogs.map is not a function
当我只是注释掉 map() 行并返回一个“hello”时,这个 console.log 显示数据正在返回
Bloglist.js:14 (3) [{…}, {…}, {…}]
如果您需要更多样品或信息,请告诉我。完成这项工作非常重要,因此我们将不胜感激!谢谢!
【问题讨论】:
标签: javascript reactjs redux redux-saga