Проблема в вашей renderPlaces
функции. Ниже приведена упрощенная версия, чтобы было легче увидеть структуру.
renderPlaces = () => {
this.state.places.map((place, i) => {
if (place.type || place.type === "Recommended Places") {
// When first selecting a location from the autocomplete search,
// you execute this code
return place.items.map((item, i) => (
{/* stuff to render a place */}
));
}
// When you select a filter, you hit this condition instead.
return this.state.places.map((place, i) => (
{/* stuff to render a place */}
));
})
};
При первом выборе местоположения в this.state.places
имеется одна запись с place.type
«Рекомендуемых мест». Это place
имеет массив items
, который управляет рендерингом. Когда вы выбираете фильтр (например, «Рестораны»), places
имеет несколько записей (10 в случае, который я видел), и ни одна из них не имеет type
, поэтому он соответствует второму условию. Второй возврат выполняет вызов this.state.places.map
, но вы все еще находитесь внутри внешнего вызова this.state.places.map
, поэтому вы повторяете все места по одному разу для каждого места. Таким образом, дополнительные копии связаны не с количеством повторных рендеров, а с количеством мест. Если вы удалите второй this.state.places.map
, как показано ниже, он будет работать нормально (по крайней мере, в этом аспекте).
renderPlaces = () => {
this.state.places.map((place, i) => {
if (place.type || place.type === "Recommended Places") {
return place.items.map((item, i) => (
{/* stuff to render a place */}
));
}
return (
{/* stuff to render a place */}
);
})
};
Я использую Проводник XUL для того, чтобы сделать быстрые макеты вещей или проверить элементы, с которыми я не знаком. Это не WYSIWYG, но можно перетащить элементы.
Spket IDE не имеет никакого WYSIWIG также.
можно хотеть судить Дополнительного Разработчика в https://addons.mozilla.org/en-US/firefox/addon/7434, который является дополнением Firefox. Один снимок экрана на той странице иллюстрирует редактора XUL WYSIWIG. Можно отредактировать файл XUL с IDE Spket и загрузить его этим редактором для проверки заключительного эффекта.
Я думаю не WYSIWYG IDE, доступный для Xul, но существует Spket IDE, он может помочь Вам
Вы могли бы хотеть попробовать редактора макетов XUL Songbird. Я вспоминаю, что это очень завершено и просто в использовании, и это идет с большим количеством примеров каждого элемента XUL, вставленного в несколько сценариев расположения. Я полагаю, что Вам нужны ночная сборка или dev выпуск ее, который можно легко получить от веб-сайта.
Хорошая вещь состоит в том, что помимо редактора, это идет с некоторыми другими необычными и очень полезными инструментами разработчика XUL. И конечно, это - большая замена iTunes ;)
Я просто хотел отметить, что занимаюсь разработкой XUL с помощью ActiveState KomodoEdit . У него нет графического интерфейса WYSIWYG XUL, но он распознает файлы XUL и может дать вам подсказки по коду для пространства имен XUL, а также для соответствующих им файлов JS.
Обратите внимание, что Komodo также был написан на XUL. У меня это работает очень хорошо: -)
Существует один редактор Wysiwyg под названием XUL Gear