我有一个来自https://hossein-zare.github.io/react-native-dropdown-picker-website/的 DropdownPicker ,用户可以在其中多次选择。为了显示选择的时间,我使用了“BADGE”模式。我遇到的问题是时间按选择的顺序显示。我希望徽章按时间顺序显示。
我尝试对 setValue 和 onValueChange 选项中的值进行排序,但这不起作用。这是我尝试过的代码:
const items = [{value: '10:00', label: '10:00'}, {value: '17:00', label: '17:00'}, {...]
const defaultItem = '17:00'
const [value, setValue] = useState(defaultItem);
const [options, setOptions] = useState(items);
const [open, setOpen] = useState(false);
<DropDownPicker
{...otherProps}
items={options}
setItems={setOptions}
open={open}
setOpen={setOpen}
value={value}
setValue={(values) => {
if (Array.isArray(values)) {
values.sort((a, b) => (a > b ? 1 : -1));
}
setValue(values);
}}
onChangeValue={(values) => {
if (Array.isArray(values)) {
values.sort((a, b) => (a.value > b.value ? 1 : -1));
}
console.log('onChangeValues:', values);
onChangeValue(values);
}}
/>
当我在 setValues 函数中控制台日志值时,它说它是一个匿名函数,但我不明白为什么会这样。在 onChangeValue 函数中,它就像我想要的那样工作。