Задать вопрос
@fristyr
Начинающий вэб разработчик

Как отобразить данный json список городов в автокомплите?

https://codesandbox.io/s/fristyr-react-gx25s
Импортирую json список.

import cities from 'cities.json';

Мапирую его.

const citiesList = cities;

const citiesListNames = citiesList.map( item => {
  return item.name 
} )

console.log(citiesListNames)

Консоль выдает список названия стран, вроде все ок.
https://monosnap.com/file/BVx9Hbwb6d8PbXEmeKBUFzsg...

Для автокомплита я использовал эту библиотечку https://github.com/JedWatson/react-select довольная простая и делает то что мне нужно.
Она использует массив из объектов для того чтоб отображать выпадающий селект.
const options = [
  { value: 'Amsterdam', label: 'Amsterdam' },
  { value: 'London', label: 'London' },
  { value: 'Moscow', label: 'Moscow' },
];

Сам компонент вот:

<Select
            value={selectedOption}
            onChange={this.handleChange}
            options={options}
            name="city"
            className={styles.weather_city_select}
          />

У меня немного не получается передать мапированный список стран.
Я передавал в пропсы options={options} const citiesListNames но приложение зависает от такого количества данных.

Так вот. Что мне нужно сделать чтоб получить то действие которое я ожидаю?
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
const citiesListNames = citiesList.map( item => {
  return item.name 
} )

Круто. Непонятно только, как после подобной манипуляции отличить Париж в Иль-де-Франс от Парижа в Онтарио. Или Москву Московской области от Москвы Пенсильвании.

приложение зависает от такого колличества данных

Как напрямую ограничить количество показываемых записей - что-то в документации не нашёл такой возможности. Можно попробовать закостылить это дело.

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

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽