ошибка: неожиданное зарезервированное слово строгого режима при использовании реакции - PullRequest
0 голосов
/ 11 января 2020

Я использую реагирование, чтобы написать демо здесь: демонстрация stackblitz Я знаю, что что-то не так с методом await и async. но я не знаю почему. все прошло нормально, если использовать aixos.get()., а затем по отдельности, но если я обернул его в классе и использовал его с пользовательским хуком в useEffect, это бросило бы меня

Неожиданное зарезервированное слово строгого режима

Ответы [ 2 ]

0 голосов
/ 12 января 2020

Итак, я нашел причину, если вы не можете напрямую использовать await внутри useEffect, потому что это не асин c метод. поэтому мы можем изменить это на следующее:

  const fetchData = async () => {
    const manager = new AxiosManager();
    let rst = await manager.fetchMockData();
    console.log(rst);
  };

  // effect_fechData();
  useEffect(() => {   
    fetchData();
  });

api manager:

export default class AxiosManager {

   async fetchMockData () {
      const rst = await axios.get('https://jsonplaceholder.typicode.com/todos/1');
      return rst;
  }


};
0 голосов
/ 11 января 2020

в вашем axiosManager ключевое слово async должно быть написано перед функцией, а не переменной, содержащей функцию, поэтому измените

async const fetchMockData = () =>{
      const rst = await axios.get('https://jsonplaceholder.typicode.com/todos/1');
      return rst;
  }

на

const fetchMockData = async () =>{
      const rst = await axios.get('https://jsonplaceholder.typicode.com/todos/1');
      return rst;
  }
...