Как отправить несколько объектов в API и получить результат от API, используя реаги js? - PullRequest
0 голосов
/ 10 января 2020

Я разрабатываю небольшой модуль, чтобы пассажиры могли выбирать маршруты и видеть количество людей, просматривающих один и тот же маршрут. Я хочу получить эту информацию, нажав API. Чтобы получить детали подсчета, я хочу отправить несколько параметров в API. Параметры: дата начала, дата окончания и детали маршрута. Я новичок, чтобы реагировать js, я искал, как передать несколько параметров API, используя «Ax ios» и «asyn c» и получить подробности из API. Ниже приведен код с использованием «asyn c», который не получил ожидаемый результат. Я не получил четкого представления. Есть ли другой способ для достижения этой цели. Может ли кто-нибудь объяснить мне, как передать множественное значение и нажать конечную точку API, чтобы получить детали подсчета. Заранее спасибо.

async componentDidMount() {
            let userData = await API.get('/', {
              params: {
                results: 1,
                param: 'sDate =  moment().subtract('1.5', 'hours'),
                        EDate =  moment().subtract('0.5', 'hours'),
                        Routes

              }
            });

            userData = userData.data.results[0];

            const sdate = userData.name.sDate ;
            const edate = userData.picture.EDate ;
            const routes= userData.Routes;

            this.setState({
              ...this.state, ...{
                isLoading: false,
                sdate ,
                edate ,
                routes
              }
            });
          }

        export default App;

Ответы [ 2 ]

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

Если мы поместим ключевое слово async в начале средства componentDidMount, тип возврата метода изменится на Promise. Это может повлиять на внутреннее поведение метода жизненного цикла componentDidMount.

Таким образом, вы можете использовать его как традиционный тогда, ловить блоки, как показано ниже,

componentDidMount() {
    API.get('/', {
        params: {
            results: 1,
            param: 'sDate =  moment().subtract('
            1.5 ', '
            hours '),
            EDate = moment().subtract('0.5', 'hours'),
            Routes

        }
    }).then((userData) => {
            userData = userData.data.results[0];

            const sdate = userData.name.sDate;
            const edate = userData.picture.EDate;
            const routes = userData.Routes;

            this.setState({
                ...this.state,
                ...{
                    isLoading: false,
                    sdate,
                    edate,
                    routes
                }
            });
        }
    }).catch((error) => console.error(error));
}
0 голосов
/ 10 января 2020

Я не знаю, как вы реализуете API, но вы можете изменить param на объект, подобный следующему, и определить объект Routes, если вы этого еще не сделали.

let userData = await API.get('/', {
    params: {
        results: 1,
        param: {
            sDate: moment().subtract('1.5', 'hours'),
            EDate: moment().subtract('0.5', 'hours'),
            Routes
        }
    }
});
...