Как экспортировать ответ Axios в модуле Export ReactJs

Мне нужно экспортировать результат ответа axios на module.exports. Это мои коды:

brand.js

var axios = require('axios');

module.exports = (async function() {
    try {
        const { data } = axios.get('http://localhost:8000/api/v1/setting/index');
        console.log(data.data.initial);
        return {
            name: data.data.name,
            desc: data.data.description,
          };      
    } catch (err) {
        console.log(err);
      }      
})();

Я пытаюсь импортировать результат для использования в другом файле. Это мой код.


import React from 'react';
const {brand} = await require("brand.js");
  
class Dashboard extends Component {   
    render(){
        const name = brand.name
        const desc = brand.description;
        return (
        <h1>{title} | {description}</h1>
        );        
    }
}  

Результат моего кода:

Can not use keyword 'await' outside an async function

Это ошибка, отображаемая в браузере:

введите описание изображения здесь

Как это решить?


person Development FlazHost    schedule 19.11.2020    source источник
comment
Вы пробовали помещать await перед axios.get() в brand.js вместо require()?   -  person BlackMath    schedule 19.11.2020
comment
Отвечает ли это на ваш вопрос? экспорт после завершения обещания   -  person Randy Casburn    schedule 19.11.2020
comment
Вы должны использовать .then() для импортированного (обязательного) объекта Promise.   -  person Randy Casburn    schedule 19.11.2020
comment
Я добавил ожидание перед аксиомами, но ошибка все еще существует.   -  person Development FlazHost    schedule 19.11.2020


Ответы (1)


вы можете сделать это.

// brand.js

import axios from 'axios';

export const fetchData = async () => {
  let response;

  try {
    response = await axios.get(url, config);
  } catch (e) {
    // catch error
    throw new Error(e.message)
  }

  // if success return value
  return response?.data ? response?.data : null // or set initial value
}

затем в вашем React

import { fetchData } from './path/to/fetchData';

const response = fetchData();

const MyComponent = (props) => {
  return (
    <div>name: {response.data.name} | desc: {response.data.description}</div>
  )
}

person Muhamad Irham Prasetyo    schedule 19.11.2020
comment
Спасибо за ваш ответ. Собственно, это мой повторяющийся вопрос, я получаю ответ из другого вопроса. Спасибо. - person Development FlazHost; 20.11.2020
comment
stackoverflow.com/questions/64350949/ - person Development FlazHost; 20.11.2020