Объяснение: Этот файл test-table1.json не существует, и мне нужен правильный журнал ошибок, чтобы его отловить.

Журнал ошибок для текущего кода:

Ошибка в table.tsx 1: SyntaxError: строка не соответствует ожидаемому шаблону

Мне нужен журнал ошибок типа «Не удалось загрузить ресурс: сервер ответил статусом 404». Любое предложение ?

public componentDidMount() {

    fetch("./assets/data/test-table1.json")
        .then((response) => response.json())
        .catch( (error) => console.error("Error in table.tsx 1 :", error) )
        .then((resData) => {
            this.setState({ data: resData.table });
        })
        .catch( (error) => console.error("Error in table.tsx 2 :", error) );

}
0
Nikola Lukic 22 Окт 2018 в 14:21

2 ответа

Лучший ответ

Я нашел в ответе свойство statusText с информацией и передал как аргумент ошибки класса.

fetch("./assets/data/test-table.json")
  .then((response) => {
    if (!response.ok) {
      if (response.statusText === "Not Found") {
        console.error("Error in component MyTable, error msg : file: './assets/data/test-table.json' ",
          response.statusText);
      }
      throw new Error(response.statusText);
    }
    return response.json();
  })
  .catch((error) => console.error(error))
  .then((resData) => {

  })
  .catch((error) => console.error("Error in MyTable in parsing json data: ", error));
0
Nikola Lukic 22 Окт 2018 в 12:58

Вы можете импортировать файл JSON, используя import и require

import data from './assets/data/test-table1.json';

    public componentDidMount() {
        fetch(data)
            .then((response) => response.json())
            .then((resData) => {
                this.setState({ data: resData.table });
            })
            .catch( (error) => console.error("Error in table.tsx 2 :", error) );
    }
0
Asif vora 22 Окт 2018 в 11:29
52928166