reactjs - 类型错误:无法使用 react-redux 读取未定义 i 的属性“地图”
问题描述
我遵循 react-redux 教程并尝试显示帖子。我从https://jsonplaceholder.typicode.com/posts获取帖子数据。它返回这样的响应:
import React from 'react';
import { connect } from 'react-redux';
import { fetchPost } from '../actions'
class PostList extends React.Component{
componentDidMount(){
this.props.fetchPost();
}
renderList(){
return this.props.post.map(pos => {
return (
<div className="item" key={pos.id}>
<p>{pos.title}</p>
</div>
);
});
}
render(){
return(<div className="ui relaxed divided list"> {this.renderList()} </div>);
}
}
const mapStateToProps = (state) =>{
return { post:state.post}
}
export default connect(mapStateToProps , { fetchPost })(PostList);
这是我的动作创建者
import JsonPlaceHolder from '../apis/JsonPlaceHolder'
export const fetchPost = () => {
return async (dispatch) => {
const response = await JsonPlaceHolder.get('/posts');
dispatch({
type: 'FETCH_POST',
payload:response
});
}
};
这是我的减速机
export default (state=[],action) => {
switch(action.type){
case "FETCH_POST":
return action.payload;
default:
return state;
}
};
这是我的 ../apis/JsonPlaceHolder 文件
import axios from 'axios';
export default axios.create({
baseURL:"https://jsonplaceholder.typicode.com/"
});
但我得到这样的错误
TypeError:this.props.post.map 不是函数
解决方案
您必须从中data
提取response
.
dispatch({
type: 'FETCH_POST',
payload:response.data
});
推荐阅读
- java - 通过jdbc模板多列值即将到来我如何将它存储在java中的地图中
- configuration - 如何在 .Net Core 中创建分层内存配置
- java - 为什么列出
.get(0) 返回一个双精度值? - angular - 在Angular 6中的函数中传递参数?
- postgresql - 如何从 Google Colab 连接 Postgres 数据库?
- php - Woocommerce 产品标签的不同状态
- download - 角度 byte64 转换为 pdf 返回 #Blocked
- c# - 如何通过 Selenium 和 C# 调用 SendKeys() 到输入元素
- apache-spark - 如何过滤火花数据框中的日期数据?
- python - 我想用 BeautifulSoup 从表中刮掉所有成员的详细信息