Я пытаюсь отобразить данные из API movieDB в React & Redux и получаю сообщение об ошибке:
Uncaught TypeError: Cannot read property 'results' of undefined
Для лучшего понимания вот мой код.
редукторы / видеоредукторы. js
const initialState = {
isFetchingMovies: false,
isFetchedMovies: false,
movieList: [],
fetchingMoviesError: null
}
export const popularMoviesReducer = (state = initialState, action) => {
switch (action.type) {
case "FETCHING_POPULAR_MOVIES_START":
return { ...state, isFetchingMovies: true, fetchingMoviesError: null }
case "FETCHING_POPULAR_MOVIES_SUCCESS":
return {
...state,
isFetchingMovies: false,
isFetchedMovies: true,
movieList: action.data,
fetchingMoviesError: null
}
case "FETCHING_POPULAR_MOVIES_FAILURE":
return { ...state, fetchingMoviesError: action.data.error }
default:
return state
}
}
редукторы / указатели. js
import { combineReducers } from "redux"
import { popularMoviesReducer } from "./moviesReducer"
const rootReducer = combineReducers({
popularMoviesReducer
})
export default rootReducer
действия / индекс. js
export const fetchPopularMovies = () => {
return async dispatch => {
dispatch({ type: "FETCHING_POPULAR_MOVIES_START" })
try {
const res = await axios.get(url)
dispatch({
type: "FETCHING_POPULAR_MOVIES_SUCCESS",
data: { popularMovies: res.data }
})
} catch (err) {
dispatch({
type: "FETCHING_POPULAR_MOVIES_FAILURE",
error: { error: "Something went wrong" }
})
}
}
}
Компоненты / Популярные. js
import React, { Component } from "react"
import { connect } from "react-redux"
import { fetchPopularMovies } from "../actions/index"
class Popular extends Component {
componentDidMount() {
this.props.dispatch(fetchPopularMovies())
}
render() {
const { isFetchingMovies, movieList } = this.props
return isFetchingMovies ? (
<p>Loading...</p>
)
:
(
<div>
{
movieList && movieList.popularMovies.results.map(movie => {
<p>{movie.title}</p>
})
}
</div>
)
}
}
const mapStateToProps = state => {
return {
isFetchingMovies: state.popularMoviesReducer.isFetchingMovies,
movieList: state.popularMoviesReducer.movieList
}
}
export default connect(mapStateToProps)(Popular)
Я всегда застреваю в такой проблеме всякий раз, когда мне нужно отобразить некоторые данные в моем компоненте. Мне нужно, наконец, узнать, как избавиться от этого!
Обновление : Вот скриншот того, что там в Popular. js в React-Dev- Инструменты. Скриншот