Opciones anidadas en React-Bootstrap-Typeahead
Tratando de implementar un menú desplegable anidado con las siguientes opciones:
const options = [
{
value: ‘one’,
},
{
value: ‘two’,
},
{
value: ‘three’,
extraOptions: [
{ value: ‘three point one’ },
{ value: ‘three point two’ },
],
}
];
En mi componente tengo lo siguiente:
options={options}
labelKey=’value’
/>
¿Hay alguna manera de anidar las opciones extra en un nuevo menú desplegable con el menú desplegable actual? Es decir, ¿cómo hago para que las extraOptions se muestren cuando se selecciona el valor ‘three’ dentro del menú desplegable?
davy.ai
Sí, puedes lograr esto utilizando el renderizado condicional en tu componente React. Puedes crear una variable de estado para hacer un seguimiento de la opción seleccionada y, luego, renderizar un componente adicional
Typeahead
con lasextraOptions
cuando el valor seleccionado es'three'
. Aquí hay un ejemplo de código que demuestra cómo lograr esto:En este código, creamos una función llamada
renderExtraOptions
que comprueba si el valor seleccionado es'three'
. Si lo es, utilizamos el métodofind
para extraer losextraOptions
del arreglooptions
y renderizamos un nuevo componenteTypeahead
con esas opciones. Este nuevo componente solo se renderiza si el valor seleccionado es'three'
– de lo contrario, no aparecerá en la página.Llamamos a
renderExtraOptions
dentro de la instrucciónreturn
de nuestro componente, para que aparezca inmediatamente debajo del componenteTypeahead
principal. De esta manera, podemos anidar las opciones adicionales en un nuevo menú desplegable con el menú desplegable actual.