Как исправить 'TypeError: Невозможно прочитать свойство' items 'из undefined' - PullRequest
0 голосов
/ 23 апреля 2019

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

При тестировании моего кода в консоли разработчика отображается следующее:

Loading the code for the SEARCH WITH VIN page. To debug this code, open i5zkm.js in Developer Tools.
Url: https://vpic.nhtsa.dot.gov/api/vehicles/decodevin/19UUA96299A543965/?format=jsonVINModule.jsw
Line 5{...}
SEARCH WITH VIN
Line 14{...}
VINModule.jsw
Line 12
Dataset is now filtered
SEARCH WITH VIN
Line 22
TypeError: Cannot read property 'items' of undefined
import {getVINInfo} from 'backend/VINModule';
import {wixData} from 'wix-data';


$w.onReady(function () {
 //TO DO: Write Your Page Related Code Here:
    }); 

export function button1_click(event, $w) {
 //Add your code for this event here:
    getVINInfo($w("#vininput").value)
        .then(VINInfo => {
            console.log(VINInfo)
                      $w("#results").text = VINInfo.Results[8].Value + "  " + VINInfo.Results[5].Value + "  " + VINInfo.Results[7].Value;
                      $w("#dataset1").setFilter(wixData.filter()
                      .eq("year", VINInfo.Results[8].Value)
                      .eq("make", VINInfo.Results[5].Value)
                      .eq("year", VINInfo.Results[7].Value))

                      .then((results) =>{
                          console.log("Dataset is now filtered");
                          $w("#repeater1").data = results.items;
 let items = "title"

                      }) 
                          .catch((err) => {
                          console.log(err);
        });
        $w("#repeater1").expand();
        })
}

Я ожидаю, что повторитель покажет поле заголовка из моей базы данных, но с элементами ничего не происходитв репитере, и я получаю следующее в консоли разработчика при предварительном просмотре страницы: TypeError: Невозможно прочитать свойство 'items' undefined.

1 Ответ

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

набор данных setFilter () возвращает обещание со значением void, поэтому вы не можете просто получить доступ к элементам набора данных из этого возвращенного обещания. Если ретранслятор еще не привязан к набору данных, вам следует использовать getItems ():

$w("#myDataset").getItems()
  .then( (result) => {
      $w("#repeater1").data = results.items
})
...