React:TypeError:this.props.courses.map不是函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React:TypeError:this.props.courses.map不是函数相关的知识,希望对你有一定的参考价值。
我无法理解为什么我不能.map
一个数组。
这是代码:
import React, Component from "react";
import connect from "react-redux";
import fetchCourses from "../../actions";
class Courses extends Component
componentDidMount()
this.props.fetchCourses();
render()
console.log("this.props.payload.courses ", this.props.courses);
const courses = this.props.courses.map(course =>
return (
<tr>
<td>course.coursename</td>
<td>course.coursetype ? "yes" : "no"</td>
<td>course.courseweeklyhours</td>
<td>
<button>הסר</button>
</td>
</tr>
);
);
return (
<div>
Courses
courses
</div>
);
const mapStateToProps = state =>
// console.log('state ', state);
return
courses: state.courses
;
;
export default connect(
mapStateToProps,
fetchCourses
)(Courses);
这是console.log的结果(渲染后的第一行)
我有两个问题
答案
您需要更正减速器实施。您的控制台输出表明this.props.courses
是一个对象,其中一个键为courses
,这是一个数组,因此您无法映射this.props.courses
。
由于你的reducer似乎在courses
中以combinedReducer
命名,并且你的初始状态是一个数组,你应该将更新后的状态也作为数组而不是对象返回
export default (state = [], action)
switch(action.type)
case FETCH_COURSES:
return action.payload.data
...
以上是关于React:TypeError:this.props.courses.map不是函数的主要内容,如果未能解决你的问题,请参考以下文章
VueJS:在 v-if 中直接改变 prop 与 this.[prop]
React - TypeError:无法读取未定义的属性“img”