I am using Material UI Select in my Project. Since i have lots of dropdowns with lots of options,i want to populate them only if they are opened by user.
On triggering the onOpen event,A call will be made and options will be fetched. Only problem is that i cannot fetch the name of Dropdown from event object passed in onOpen event.
The event is MouseDown. Which does not contain that information.
How to solve that???
Is there any other event i can use??
Is this the standard way of doing this?
Here is the code..
onOpen Handle function
const handleSelectOpen = (event,a) => {
console.log(event.target.name ) //returns undefined
fetchData([reqDimName], filtersFormatted).then((data) => {
});
};
Select Component.
<Select
name={label.split('.')[1]}
label={
filterDimensions[e]?.meta?.current?.[
`${filterDimensions[e].metaTable}.${label.split('.')[1]}`
]
}
onChange={filters[e].eventHandler}
value={filters[e].value?.[label.split('.')[1]] ? filters[e].value?.[label.split('.')[1]] || "" : [] || ""}
onOpen={handleSelectOpen}
multiple
renderValue={(selected) => (
<Box
sx=
>
{selected.map((value, j) => (
<Chip
key={i} // use uniqueId to generate a unique key prop
// key={`chip-${j}`}
label={value}
/>
))}
</Box>
)}
>
{
Object.keys(filters[e].items).length > 0
? filters[e].items?.[label.replace('Meta',"")]
?.filter((e) =>
props.selectedDataType?.id
? e.dataTypeId == props.selectedDataType.id
: true
)
?.map((e, i) => (
<MenuItem
key={i} // use uniqueId to generate a unique key prop
// key={`cascadingMenuItem-${i}`}
value={e.option ? e.option : null}
classes=
>
{e.option ? e.option : 'null'}
</MenuItem>
))
: null
}
</Select>
Via Active questions tagged javascript - Stack Overflow https://ift.tt/y70lZDR
Comments
Post a Comment