0

我有一个来自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 函数中,它就像我想要的那样工作。

4

0 回答 0