Положить колл reactjs - PullRequest
       0

Положить колл reactjs

0 голосов
/ 05 мая 2020

Это мой служебный метод, в котором мне нужно выполнить вызов API, передав идентификатор. Это правильный путь, bcoz Я не могу попасть в свой URL-адрес .put

 ENDPOINTS = {
        SAMPLE: "/sample",
      };

Это мой метод обслуживания:

    updateApi(): Promise<any> {
        const config = {
          headers: {
            accept: "application/json",
            "Content-Type": "application/json",
          },
        };

        const data = {
           // data 
        };
 const id = sample.id;
        return http
          .put(`${this.ENDPOINTS.SAMPLE}${id}`, data, config)
          .then((response) => {
            return response.data;
          })
          .catch((error) => {
            throw error;
          });
      }

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Не уверен, есть ли у вас причина для использования http здесь, но если у вас есть гибкость, попробуйте fetch API, доступный в реакции.

      const requestOptions = {
        method: 'PUT',
        headers: {
            accept: "application/json",
            "Content-Type": "application/json",
          },
        body: data
      };

      fetch(`${ENDPOINTS.SAMPLE}/${sample.id}`, requestOptions)
        .then(response => response.json())
        .then(data => this.setState({ // update data here }));

Если вы напрямую вызываете API в своем компонент, то указанный выше код можно поместить внутрь componentDidMount.

Дайте мне знать, если у вас возникнут какие-либо проблемы!

1 голос
/ 05 мая 2020

Я считаю, что ваша проблема в строке const {id} = sample.id;

Вместо этого должно быть: const { id } = sample; или эквивалент const id = sample.id.

Кроме того, в вашей конечной точке API отсутствует конечная точка /, поэтому вы должны включить его в свой вызов .put().

Пример: ${this.ENDPOINTS.SAMPLE}/${id}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...