Я создаю базовое приложение CRUD, используя React / Redux с Rails API, и когда я отправляю автомобиль в форме автомобиля, я получаю сообщение об ошибке, но при обновлении браузера отображается машина.
Ошибка говорит Uncaught TypeError: Cannot read property 'map' of undefined
в строке 20 моего файла Cars.js:
import React, { Component } from 'react';
import { connect } from 'react-redux';
import CarCard from '../components/CarCard';
import CarForm from './CarForm';
import './Cars.css';
import { getCars } from '../actions/cars';
class Cars extends Component {
componentDidMount() {
this.props.getCars()
}
render() {
return (
<div className="CarsContainer">
<h3>Cars Component</h3>
{this.props.cars.cars.map(car => <CarCard key={car.id} car={car} />)}
<CarForm />
</div>
);
}
}
const mapStateToProps = (state) => {
return ({
cars: state.cars
})
}
export default connect(mapStateToProps, { getCars })(Cars);
Вот мой createCar
создатель действия:
const addCar = car => {
return {
type: 'CREATE_CAR_SUCCESS',
car
}}
И мое createCar
асинхронное действие:
export const createCar = car => {
return dispatch => {
return fetch(`${API_URL}/cars`, {
method: "POST",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({ car: car })
})
.then(response => {
try {
return response.json()
} catch(error) {
console.log(error);
}
})
.then(cars => {
dispatch(addCar([car]));
dispatch(resetCarForm())
})
.catch(error => console.log(error + 'createCar POST failed'))
}}
Я не уверен, что здесь происходит, поскольку приложение отражает мои изменения после перезагрузки.В конечном итоге я пытаюсь показать эту информацию без обновления страницы.