Результат данных от Axios - PullRequest
0 голосов
/ 15 марта 2020

Я новичок в Axio и React, я хотел бы знать, как вернуть мои результаты из Axio. Мой console.log показывает все мои массивы, отправленные PHP отлично, но он не вернется в моем HTML коде.

Вот мой код

axios.get('api.php').then(result => {
    console.log(result.data);
    return result.data
});

Я пытался использовать внутренний HTML но это дает мне

[object Object]

И добавление .macdb после result.data дает мне undefined

1 Ответ

1 голос
/ 15 марта 2020

Предположительно, вы пытаетесь отображать возвращаемые данные осмысленным образом. В ответ это достигается путем рендеринга некоторого JSX из состояния и / или реквизита. При использовании асинхронных c выборок данных вы захотите обновить свое состояние после получения ответа, а не возвращать его (завернутый в обещание).

axios.get('api.php')
  .then(result => {
    console.log(result.data);
    this.setState({ data: result.data });
  });

Типичным шаблоном для выборки данных является его выполнение. в функции жизненного цикла componentDidMount (в случае компонентов на основе классов) или ловушке useEffect с пустым массивом зависимостей (для функциональных компонентов).

class Demo extends Component {
  state = {
    data: {},
  };

  componentDidMount() {
    axios.get('api.php')
      .then(result => {
        console.log(result.data);
        this.setState({ data: result.data });
      });
  }
}

или

const Demo = () => {
  const [data, setData] = useState({});
  useEffect(() => {
    axios.get('api.php')
      .then(result => {
        console.log(result.data);
        setData(result.data);
      });
  }, []);
};
...