Tengo una lista que quiero mostrar en un menú desplegable. El onchange en manejado por
const handleChange = (event) => { onFilterChange(filterName, event.target.value); } };event.target.value es lo que extrae la información.
Los elementos de mi lista desplegable son listItems = ['mayor que', 'menor que, 'igual'], que son claves de cadena que se introducen en event.target.value.
Mi problema es que quiero que listItems sea una matriz de símbolos (>, <, =) en lugar de palabras. Pero mis componentes solo funcionan con las claves de palabra.
Quiero crear una declaración if en el controlador que asigne el valor de la palabra a la matriz de signos.
ex.
const listItems = ['>','<','='] const handleChange = (event) => { onFilterChange(filterName, event.target.value); if (event.target.value === '>') { // then use key value of greaterthan } if (event.target.value === '<') { // then use key value of lesserthan } if (event.target.value === '=') { // then use key value of equal } };
Lo estoy alimentando en un componente seleccionado usando
<Select> {listItems.map((listItem) => <MenuItem value={listItem}>{listItem}</MenuItem>)} </Select>Gracias por tu ayuda.
Puede crear un mapa de objetos para recuperar los identificadores respectivos:
listItems = { ['>']: 'greaterthan', ['<']: 'lesserthan', ['=']: 'equal' } const handleChange = (event) => { onFilterChange(filterName, event.target.value); if (event.target.value === listItems['>']) { // then use key value of greaterthan } if (event.target.value === listItems['<']) { // then use key value of lesserthan } if (event.target.value === listItems['=']) { // then use key value of equal } }