React ax ios api call: как я могу вернуть несколько параметров в URL? - PullRequest
0 голосов
/ 18 февраля 2020

Не был уверен, как спросить это ..

Как я могу вернуть, скажем, людей / 0-15? Я не хочу, чтобы люди / 0, я хотел бы получить доступ к людям 0-15, et c

Я хочу вернуть несколько человек. Что мне здесь делать?

function getData() {
    return axios.get("https://www.blablahtest.com/api/orders");
  }

function getPerson() {
    return axios.get(`https://www.blablahtest.com/api/people/0`); <----
  }

  useEffect(() => {
    axios.all([getData(), getPerson()]).then(
      axios.spread(function(item, person) {
        setData(item.data);
        setPersonData(person.data);
      })
    );
  }, []);

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Не используйте axios.spread (будет удалено в следующих версиях https://github.com/axios/axios/issues/1042)

Вы можете попробовать ниже:

function getData() {
  return axios.get("https://www.blablahtest.com/api/orders");
}

function getPerson() {
  return axios.get("https://www.blablahtest.com/api/people/0");
}

useEffect(() => {
  Promise.all([getData(), getPerson()]).then((item, person) => {
    setData(item.data);
    setPersonData(person.data);
  })
}, []);

Я надеюсь это помогает.

0 голосов
/ 18 февраля 2020

Вы могли бы создать функцию getPeople для установки массива Ax ios GET, а затем выполнить их все в вашем топоре ios .all? Не идеальное решение, так как вам нужно делать много запросов, но если у вас нет возможности изменить бэкэнд, он получит то, что вам нужно ...

    function getPeople(start, end) {
      const requestArray= [];
      for ( let i = start; i < end; i++ ) {
        peopleArray.push(() => axios.get(`https://www.blablahtest.com/api/people/${i}`))
      }
     return peopleArray;
}

В использованииЭффект:

  useEffect(() => {
    axios.all(...getPeople(0,15)).then(
      axios.spread(function(people) {
        setPersonData(people);
      })
    );
  }, []);

Что-то в этом роде ... Возможно, понадобятся некоторые настройки, поскольку у меня не было возможности проверить это. Удачи!

...