пытается отобразить JSON с ошибкой 422 Rails React - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть приложение с Rails в качестве бэкэнда и React в качестве внешнего интерфейса.Я пытаюсь обработать ошибки чередования на стороне сервера и вывести любую ошибку путем обновления моего состояния в клиенте.

вот код в моем методе контроллера:

def create
  # here some code to handle payment...
   rescue Stripe::CardError => e
     render json: e.json_body[:error][:message], status: 422
  end

и моя функция реагирования, которая обрабатывает ответ:

  axios.post("/orders"})
  .then(res => {
      this.setState({
        hasOrdered: true,
        orderSuccess: true,
        loading: false
      });
  })
  .catch(err => {
    console.log(err);
    this.setState({
      loading: false,
      error: err
    });
  });

вывод console.log(err) прост: Error: Request failed with status code 422 тогда как ответ, который я получаю через сеть:

network tab outbut in the browser

И мне нужно обновить состояние с помощью «На вашей карте недостаточно средств."

Как я могу это сделать?

1 Ответ

0 голосов
/ 11 декабря 2018

ОК получил решение: я должен получить доступ err.response.data:

 .catch(err => {
    console.log(err.response.data);
    this.setState({
      loading: false,
      error: err.response.data
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...