hooks
hooks copied to clipboard
useDynamicList 的 getIndex 能否指定比较的参数?
看代码是直接对比,太局限了,基本只能原子类型的数组能用
我的 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
}),
[],
);
key 有什么使用场景是其他类型的吗
可以增加这个能力
key 有什么使用场景是其他类型的吗
列表的元素主键,可能为 key,可能为 id,不确定,可能是 string 或 number 类型