У вас здесь есть несколько незначительных проблем, которые нужно исправить, чтобы привести вас на правильный путь.
Ваш mapStateToProps
относится к course
, а не courses
. И если вы хотите, чтобы оно ссылалось на courses
, вам нужно обновить, как действие CREATE_COURSE
работает в вашем редукторе.
Чтобы исправить ошибку, вызывающую cra sh, вам нужно добавить initialState
, чтобы courses
не было неопределенным. Так как это нормально для отображения через пустой массив, но вы не можете отобразить через undefined
.
Обновите свой courseReducer
до следующего:
import * as types from "../actions/actionTypes";
const initialState = {
courses: []
}
export default function courseReducer(state = initialState, action) {
switch (action.type) {
case types.CREATE_COURSE:
return { ...state, courses: [...state.courses, action.course] };
default:
return state;
}
}
И затем внесите это изменение на ваш mapStateToProps
:
function mapStateToProps(state) {
return {
courses: state.courses,
};
}
Наконец, измените этот бит кода с this.props.course
на this.props.courses
:
{this.props.courses.map((course) => (
<div key={course.title}>{course.title}</div>
))}
Теперь ваше приложение должно работать как положено.