hooks icon indicating copy to clipboard operation
hooks copied to clipboard

useDynamicList 的 getIndex 能否指定比较的参数?

Open Lizhooh opened this issue 2 years ago • 3 comments

看代码是直接对比,太局限了,基本只能原子类型的数组能用 我的 list 是 { key: string, name: string }[],需要根据 key 找出 index,理解性用 getIndex(key),看源码发现不对劲

 const getIndex = useCallback(
    (key: number) => keyList.current.findIndex((ele) => ele === key),
    [],
  );

建议加个第二个参数

 const getIndex = useCallback(
    (key: number, attr?: string | (val: T) => boolean) => keyList.current.findIndex((ele) => {
         if (typeof attr === 'function') return attr(ele)
         if (typeof  attr === 'string') return ele[attr] === key
         return ele === key
      }),
    [],
  );

Lizhooh avatar Aug 03 '23 02:08 Lizhooh

key 有什么使用场景是其他类型的吗

hchlq avatar Aug 07 '23 02:08 hchlq

可以增加这个能力

hchlq avatar Aug 07 '23 04:08 hchlq

key 有什么使用场景是其他类型的吗

列表的元素主键,可能为 key,可能为 id,不确定,可能是 string 或 number 类型

Lizhooh avatar Aug 21 '23 02:08 Lizhooh