Метод getResponseText объекта PromptResponse не найден - PullRequest
0 голосов
/ 09 июля 2019

Я делаю очень простую функцию для электронной таблицы Google, которая запрашивает у пользователя значение и записывает его в ячейку.
Обычный способ сделать это, кажется, использовать ui.prompt, а затем получить содержимое с помощью метода getResponse.
Однако метод getResponse, используемый для объекта PromptResponse, выдает «метод не найден» в моем коде.
Вы знаете, как получить текст из приглашения?

function addFoodstuff(){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Carrefour");
  var ncol=findTemp();
  var tempHead = sh.getRange(1,ncol);
  var firstEmpty =tempHead.getNextDataCell(SpreadsheetApp.Direction.UP).offset(1,0);

  var ui = SpreadsheetApp.getUi();
  var ans = [[ui.prompt("Entrez un aliment")]];
  var txt =ans.getResponseText();
  firstEmpty.setValues(txt);
}

1 Ответ

1 голос
/ 09 июля 2019

Задача

Как говорится в сообщении об ошибке, метод не найден, что должно указывать на объект, для которого вы вызываете этот метод. В вашем случае это записывается в переменную ans, которая является экземпляром Array (хотя это будет двумерная переменная). Метод getResponseText() доступен только для PromptResponse экземпляров классов.

Решение

Остерегайтесь порядка, в котором вы изменяете свои объекты. Когда вы заключили ui.prompt('yourText') в скобки, вы сделали преобразование в Array. Таким образом, вы должны сначала извлечь текст ответа (и в идеале, не переопределять переменную только в случае, если вам может понадобиться этот экземпляр PromptResponse позже).

Sample

function addFoodstuff(){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Carrefour");
  var ncol=findTemp();
  var tempHead = sh.getRange(1,ncol);
  var firstEmpty =tempHead.getNextDataCell(SpreadsheetApp.Direction.UP).offset(1,0);

  var ui = SpreadsheetApp.getUi();
  var answer = ui.prompt("Entrez un aliment"); //keep it unchanged;
  var txt =answer.getResponseText();
  var values = [[txt]];

  firstEmpty.setValues(values);
}

Полезные ссылки

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