Objek acara onSubmit kosong di skrip Google

Sep 23 2020

Saya memiliki formulir Google yang ditautkan ke lembar Google. Dalam spreadsheet itu saya memiliki kode yang memiliki ini

function onSubmit(e){
  Logger.log(e)    
  Logger.log("Call onSubmit")
}

Pemicunya diatur sebagai berikut

Project: Spreadsheet's scritp 
Deployment:Head 
Event:From spreadsheet - On form submit 
Function:onSubmit

Jadi setiap kali saya mengirimkan formulir, log akan muncul

[object Object]
Call onSubmit

Formulir memiliki banyak pertanyaan, bukan formulir kosong. Saat saya membaca dokumentasinya, sepertinya objek event memiliki banyak informasi. Apakah ada yang salah dengan penyiapan saya? Saya terpaksa membaca tanggapan di lembar data tetapi itu tidak ideal. Terlalu banyak hal yang harus dipanggil dan / atau ditentukan secara manual.

Jawaban

1 TheMaster Sep 23 2020 at 19:34

Logger bermasalah dan tidak disarankan untuk mengandalkan langsung pada apa yang Anda lihat di debugger.

Praktik terbaik:

  • Selalu gunakan consolekelas, bukanLogger

  • Selalu JSON.stringify()apa pun yang akan Anda catat:

    console.log(JSON.stringify(e));
    

Yang terakhir harus memperbaiki masalah Anda. [object Object]adalah hasil dari pemanggilan toString()objek, karena pencatat tidak mampu menampilkan objek secara langsung.

const obj = {a:1};
console.log(obj.toString());//[object Object]
console.log(JSON.stringify(obj));//'{"a":1}'

1 ThatComputerGuy Sep 23 2020 at 19:15

Tidak seperti kebanyakan debugger browser, logger skrip aplikasi Google hanya akan menyimpan nilai string dasar. Dalam kebanyakan kasus, ini berarti bahwa dokumentasi akan lebih berguna untuk memahami nilai-nilai kompleks. Dalam kasus Anda, objek acara untuk acara pengiriman cukup sederhana, dengan valueskunci untuk larik sederhana dan namedValueskunci untuk pencarian objek dari apa yang telah dikirimkan.