Closed mleister97 closed 2 years ago
Figured it out, working (simplified solution) using TS:
const [open, mySetOpen] = useState(false);
const [value, mySetValue] = useState<string>("apple");
const [items, mySetItems] = useState([
{label: 'Apple', value: 'apple'},
{label: 'Banana', value: 'banana'}
]);
type SetStateCallback<S> = ((prevState: S) => S);
type SetStateValue<S> = ((prevState: S) => S);
const setOpen = (open: SetStateValue<boolean>) => {
mySetOpen(open)
}
const setValue = (callback: SetStateCallback<string>) => {
mySetValue(callback)
}
const setItems = (callback: SetStateCallback<IDropDownItem[]>) => {
mySetItems(callback)
}
<DropDownPicker
open={open}
value={value}
items={items}
setOpen={setOpen}
setValue={setValue}
setItems={setItems}
/>
I don't want to create seperate setState() for each dropdown. I am using an Array/Reducer with 20 open/close states for the dropdown (I am currently migrating from V3). How can I use multiple states at once? Example:
Recently I wrote wrapper functions for opening and closing and setting the corresponding dropdown visible state like this: