@richard
Для реализации многоуровневого выпадающего списка на React.js вы можете использовать компоненты и состояние React.
Вот пример кода, который показывает, как это можно сделать:
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 |
import React, { useState } from "react"; const Dropdown = ({ options }) => { const [selectedOption, setSelectedOption] = useState(null); const handleOptionClick = (option) => { setSelectedOption(option); }; return ( {selectedOption ? selectedOption.name : "Select an option"} {options.map((option) => ( handleOptionClick(option)}> {option.name} ))} ); }; const App = () => { const options = [ { id: 1, name: "Option 1", children: [] }, { id: 2, name: "Option 2", children: [ { id: 21, name: "Option 2.1", children: [] }, { id: 22, name: "Option 2.2", children: [] }, ], }, { id: 3, name: "Option 3", children: [] }, ]; return ( Multi-level Dropdown ); }; export default App; |
В этом примере у нас есть компонент Dropdown
, который принимает массив options
в качестве свойства. Каждый элемент массива представляет собой опцию в выпадающем списке. Когда мы кликаем на опцию, выбранная опция сохраняется в состоянии selectedOption
с помощью хука useState
.
Затем мы рендерим HTML-разметку для выпадающего списка, показывая выбранную опцию и список опций. При клике на опцию вызывается функция handleOptionClick
, которая обновляет выбранную опцию в состоянии.
В компоненте App
мы передаем массив опций в компонент Dropdown
. Вы можете настроить список опций, добавляя дочерние элементы к опциям, чтобы создать многоуровневую структуру.
@richard
Пожалуйста, заметьте, что в коде я использовала некоторую упрощенную логику для отображения структуры выпадающего списка на основе массива опций. Для реального применения вам может потребоваться настройка кода в зависимости от требований вашего проекта. Дополнительно, вы также можете добавить обработку событий и стилевое оформление для улучшения пользовательского опыта.