Как отобразить JSON получить результат с помощью кода Wix? - PullRequest
0 голосов
/ 07 ноября 2018

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

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

По сути, я пытаюсь получить динамическую страницу для отображения повторителя, который заполняется из их метода json API Get.

В настоящее время для бэкэнда, который у меня есть (URL для API удален в целях безопасности):

import {fetch} from 'wix-fetch';

export function  getdata(){
  return fetch('URL to API Service', {method: 'get'})
    .then( (httpResponse) => {
      if (httpResponse.ok) {
        return httpResponse.json();
      } 
    } );

}

На этой странице я думаю, что застреваю:

import {getdata} from 'backend/fetchCats';

 getdata()
        .then(json => {

            console.log(json);          

            var catData = json;
// static repeater data

$w.onReady(function () {
  // handle creation of new repeated items
  $w("#repeater1").onItemReady( ($item, itemData, index) => {
    $item("#text23").text = itemData.ANIMALNAME;  
  } );

  // set the repeater data, triggering the creation of new items
  $w("#repeater1").data = catData;

} );
});

Выше приведено сообщение об ошибке: Ошибка SDK Wix-кода: у каждого элемента в массиве элементов должен быть элемент с именем _id, который содержит уникальное значение, идентифицирующее элемент.

Я знаю, что в вызове JSON есть поле ID, но я предполагаю, что Wix ожидает поле _id.

Я просто делаю это неправильно? Или я упускаю что-то простое? Я провел пару ночей в поисках, но не могу найти в Интернете полный пример, который использует метод выборки Wix для получения данных через мой HTTPS Get.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 08 ноября 2018

У тебя все хорошо.

Вы получаете сообщение об ошибке со строки $w("#repeater1").data = catData; это линия, используемая для установки элементов в повторитель. Предполагается, что ретранслятор имеет член _id для каждого элемента, и ваши данные, вероятно, не имеют такого атрибута.

Я предполагаю, что API, который вы используете, при возврате массива, у каждого элемента есть какой-то атрибут идентификации? если это так, вы можете просто сделать простое преобразование, как -

let catDataWithId = catData.map(item => {
  item._id = item.<whatever id attribute>;
  return item;
});
$w("#repeater1").data = catData;
...