Как мне опубликовать в API на сайте реагировать - PullRequest
0 голосов
/ 19 октября 2019

Я очень новичок и в реагировании, и в API, поэтому у меня есть вопрос о публикации в API. Я хочу, чтобы мне пришлось публиковать тексты моей текстовой области в API, и API будет отправлять некоторые оценки на основе моего текста.

Дело в том, что текстовое поле, вероятно, отправит что-то вроде этого, который будет просто текстом:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua

, но API принимает только данные, как есть префикс части {"данные": "snippetDescription"} или просто выдает ошибку 404 без префиксной части

{"data":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"}

, так что, как вы можете видеть, моя текстовая область не имеет части {"data": ""}, а толькочистая текстовая часть.

, поэтому я попытался объединить это в методе post, но он выдает ошибку. вот как я пытался объединить первую часть с текстом textarea.

scoreanalysis = (snippetDescription) => {

    return fetch("api/score/", {
      method: "POST",
      body: JSON.stringify({
        snippetdesc: "{" + "data" + ":" + "snippetDescription" + "}" //this is the concatenation which doesn't work
      }),
      headers: {
        "Content-type": "application/json; charset=UTF-8"
      }
    })
      .then(response => response.json())
      .then(
        textdata => {
          this.setState({
            scoredata: textdata.scores,            
          });
          console.log(scoredata); //how do I console log scoredata
        },
        error => {
          console.log(error);
        }
      );
  };

код textarea

            <textarea
              placeholder="Enter your text here"
              onChange={snippetDescription =>
                this.setState({
                  snippetDescription
                })
              }
            ></textarea>

ошибка

Unexpected string concatenation of literals   no-useless-concat

Я надеюсь, что кто-томожет показать мне, как объединить часть префикса, чтобы я мог отправлять данные так, как хочет API, чтобы API мог возвращать результаты. спасибо

обновление:

  scoreanalysis = (snippetDescription) => {
    return fetch("api/scores", {
      method: "POST",
      body: JSON.parse('{"data":"snippetDescription"}')
    })
      .then(response => response.json)
      .then(
        textdata => {
          this.setState({
            scoredata: textdata.scores,
          });
        },
        error => {
          console.log(error);
        }
      );
  };

не получает никаких данных от API .. показывает ошибку в консоли как


1 Ответ

0 голосов
/ 19 октября 2019

Использовать JSON.parse('{data:"textarea content"}') Вам необходимо использовать формат JSON для отправки / получения данных.

Вы не вызываете функцию scoreanalysis:

<textarea
    placeholder="Enter your text here"
    onChange={snippetDescription =>
        this.setState({
            snippetDescription
        })
    }
></textarea>

Ура!

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