Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 03.06.2019
Сообщений: 83

Теги <select> и <option> Выпадающий список

19.03.2021, 15:55. Показов 1517. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Хочу реализовать, что-то вроде таблицы, которая будет состоят из трёх столбцов и тут же есть выпадающий список, в котором есть выбор, по каким параметрам сделать сортировку: по имени, фамилии, годам. Вот код,

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const Test = () => {
 
  const SortByFirstName = () => {
    console.log("SortByFirstName");
  }
 
  const SortByLastName = () => {
    console.log("SortByLastName");
  }
 
  const SortByYear = () => {
    console.log("SortByYear");
  }
 
  const obj = [
    {
      id: 1,
      sort: "SortByFirstName",
      firstName: "Vasya",
      lastName: "Murkin",
      year: 21,
    },
    {
      id: 2,
      sort: "SortByLastName",
      firstName: "Kolya",
      lastName: "Durkin",
      year: 17,
    },
    {
      id: 3,
      sort: "SortByYear",
      firstName: "Petya",
      lastName: "Pupkin",
      year: 12,
    }
  ];
 
  const [state, setState] = useState(obj[0]);
 
  return (
    <div className="test">
      {/* value={state} */}
      <table>
        <thead>
          <tr>
            <td>{state.firstName}</td>
            <td>{state.lastName} </td>
            <td>{state.year}</td>
          </tr>
        </thead>
      </table>
 
      <select onChange={(e) => setState(obj.find((film) => (film.id == e.target.value)))}>
        {obj.map((film) => (<option key={film.id} value={film.id}>{film.sort}</option>))}
      </select>
    </div>
  );
}
export default Test;
но я никак не могу связать выпадающий список так, чтоб при выборе из списка, например SortByFirstName, выводилась в консоль функция из надписью console.log("SortByFirstName");
Ещё один вопрос.
Когда в этой части кода
JavaScript
1
setState(obj.find((film) => (film.id == e.target.value)))
я ставлю строгое равно "===", мне на странице показывает ошибки в этой части
JavaScript
1
2
3
<td>{state.firstName}</td>
<td>{state.lastName} </td>
<td>{state.year}</td>
Текст ошибки "TypeError: state is undefined"
Почему так происходит и как это исправить? Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.03.2021, 15:55
Ответы с готовыми решениями:

html выпадающий список вывод option value?
есть выпадающий список &lt;select name=&quot;country&quot;&gt; &lt;option value=&quot;7122&quot; selected=&quot;selected&quot;&gt;Россия &lt;/option&gt; &lt;option...

Выбрать option в select при выборе другого option в другом select
Всем добрый привет! Подскажите, пожалуйста, как реализовать вот какую штуку: необходимо, чтобы при выборе option с value=0 в select с...

БД и выпадающий список select
Здравствуйте! Имеется форма. В этой форме есть поле типа текст и выпадающий список. В БД имеются 2 таблицы. Первая таблица имеет...

2
35 / 28 / 12
Регистрация: 16.06.2020
Сообщений: 160
21.03.2021, 00:26
Не могу понять этого момента
JavaScript
1
setState(obj.find((film) => (film.id == e.target.value)))
Функция setState ожидает объект для установки состояния в формате {ключ: значение}. Метод obj.find(...) вернет только значение, если его найдет иначе вернет undefined. Вы как устанавливать состояние хотели?

По второму вопросу:
в переменной state содержится undefined, естественно при попытки обращения к любому свойству будет ошибка: "TypeError: state is undefined"
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
22.03.2021, 09:48
Цитата Сообщение от Artem_7 Посмотреть сообщение
я ставлю строгое равно "==="
Потому что e.target.value - String, а film.id - Number
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2021, 09:48
Помогаю со студенческими работами здесь

Выпадающий список <select>
Добрый день, это не особо можно назвать проблемой, но кто знает как бороться подскажите. Есть выпадающий список &lt;select&gt;, когда...

Выпадающий список (select)
Нужна ваша помощь! Есть форма с выпадающим списком (select), которая стилизована с помощью скрипта jqTransform (стандартные поля...

Выпадающий список <select>
У меня в БД в таблице users есть поле spe******t. Тоесть при регистрации я хочу сделать випадающий список &lt;select&gt; из которого есть...

Выпадающий список select+js
задау у меня такая если я выбрал Модератора то отобразился див! а если Другова то убрался и Чекбоксы обнулились! чтот не могу сообрадить...

Выпадающий список select
Всем доброго времени суток! У меня имеется выпадающий список select. &lt;select class=&quot;razmer3&quot; style=&quot;font-weight:bold;&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru