Primero, asegúrate de importar el CSS de Semantic UI en tu proyecto. Normalmente, esto se hace en el archivo index.js
o App.js
:
import 'semantic-ui-css/semantic.min.css';
Luego, importa los componentes de Semantic UI necesarios para crear el dropdown:
import React, { useState } from 'react';
import { Dropdown } from 'semantic-ui-react';
Crea un array con las opciones que quieres mostrar en tu dropdown. Cada opción es un objeto con las propiedades key
, text
y value
:
const options = [
{ key: 'angular', text: 'Angular', value: 'angular' },
{ key: 'react', text: 'React', value: 'react' },
{ key: 'vue', text: 'Vue', value: 'vue' },
];
Ahora, puedes crear el componente Dropdown. Utilizaremos el hook useState
para manejar el estado del valor seleccionado:
const DropdownExample = () => {
const [selectedValue, setSelectedValue] = useState('');
const handleChange = (e, { value }) => {
setSelectedValue(value);
console.log("Valor seleccionado:", value);
};
return (
<Dropdown
placeholder='Selecciona una opción'
fluid
selection
options={options}
onChange={handleChange}
value={selectedValue}
/>
);
};
Finalmente, renderiza el componente DropdownExample
en tu aplicación:
import React from 'react';
import ReactDOM from 'react-dom';
import DropdownExample from './DropdownExample';
const App = () => (
<div>
<h2>Ejemplo de Dropdown con Semantic UI y React</h2>
<DropdownExample />
</div>
);
ReactDOM.render(<App />, document.getElementById('root'));
Puedes personalizar el dropdown de muchas maneras, incluyendo:
Fluid
const DropdownExample = () => {
const [selectedValue, setSelectedValue] = useState('');
const handleChange = (e, { value }) => {
setSelectedValue(value);
console.log("Valor seleccionado:", value);
};
return (
<Dropdown
placeholder='Elige tu framework favorito'
selection
options={options}
onChange={handleChange}
value={selectedValue}
/>
);
};
Puedes manejar diferentes eventos, como onFocus
y onBlur
, además del evento onChange
que ya hemos utilizado. Por ejemplo, para manejar el enfoque y la pérdida de enfoque:
const DropdownExample = () => {
const [selectedValue, setSelectedValue] = useState('');
const handleChange = (e, { value }) => {
setSelectedValue(value);
console.log("Valor seleccionado:", value);
};
const handleFocus = () => {
console.log("Dropdown enfocado");
};
const handleBlur = () => {
console.log("Dropdown desenfocado");
};
return (
<Dropdown
placeholder='Selecciona una opción'
fluid
selection
options={options}
onChange={handleChange}
onFocus={handleFocus}
onBlur={handleBlur}
value={selectedValue}
/>
);
};
Con estos pasos, has creado e implementado un dropdown utilizando Semantic UI y React. Puedes seguir personalizando y expandiendo este componente según las necesidades de tu proyecto.
Jorge García
Fullstack developer