Необработанный отказ (ошибка): данное действие вернуло неопределенное React JS - PullRequest
0 голосов
/ 01 июня 2018

Я не уверен, почему я получаю ошибку.Необработанный отказ (ошибка): из-за действия «SET_CARS» редуктор «автомобили» вернул неопределенное значение.Чтобы игнорировать действие, вы должны явно вернуть предыдущее состояние.Если вы хотите, чтобы этот редуктор не содержал значения, вы можете вернуть null вместо undefined.

REDUCERS

  import { SET_CARS} from "../actions";
  import { combineReducer } from "redux";

  function cars(state = [], action) {
  switch (action.type) {
  case SET_CARS:
  return 
  action.items;
  default:
  return state; }
  }

 const rootReducer = combineReducers({
 cars
 });

 export default rootReducer;

ACTIONS

 export const SET_CARS = 'SET_CARS';

 export function setCars(items){
  return {
    type: SET_CARS , 
    items
}
}

SearchCars

class SearchCars extends Component {
 constructor() {
  super();


   this.state = {
  tansmition: ""
  };
  }

search() {
let { tansmition } = this.state;
const url = `http://localhost:4000/vehicles/? 
transmission=${tansmition}`;


fetch(url, {
  method: 'GET'
})
.then(response => response.json())
.then(json => {
    this.props.setCars(json.results)
  })
}

enter image description here

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

ASI снова наносит удар.

return 
action.items;

Это интерпретируется как:

return;
action.items;

Соедините их вместе в одну строку, и это должно работать.Я также хотел бы рассмотреть возможность использования форматера, например красивее .Это поможет вам и другим, просматривая ваш код, легче увидеть подобные ошибки.

0 голосов
/ 01 июня 2018

В вашем fetch отсутствует функция return в функции жирной стрелки, поэтому выборка ничего не возвращает.

Измените эту строку:

.then(json => {
    this.props.setCars(json.results)
})

На это:

.then(json => {
    return this.props.setCars(json.results)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...