小编kar*_*o-s的帖子

带有通用类型的自定义 Hook TypeScript

我在为自定义钩子 usePagination 创建接口时遇到问题。我需要帮助来创建这个通用的钩子,因为此时 User 接口与其余接口不相关。dataEntries 是具有 id、firstName 和 lastName 的用户数组。ElementsOnPage 默认设置为 50。

function usePagination(dataEntries,elementsOnPage = 50) {
  const [actualPageIdx, setActualPageIdx] = useState(1)
  const lastPageIdx = Math.ceil(dataEntries.length / elementsOnPage)
  const [isBusy, setIsBusy] = useState(false)
  const timeoutRef = useRef<any>(null)


  useEffect(() => {
    setIsBusy(true)
    if (timeoutRef.current) {
      clearTimeout(timeoutRef.current)
    }
    timeoutRef.current = setTimeout(() => {
      setIsBusy(false)
    }, 333)
  }, [actualPageIdx])

  const entriesOnSelectedPage = () => {
    const firstEntry = (actualPageIdx - 1) * elementsOnPage
    const lastEntry = firstEntry + elementsOnPage
    console.log(dataEntries.slice(firstEntry, lastEntry))
    return dataEntries.slice(firstEntry, …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs react-hooks

2
推荐指数
1
解决办法
1万
查看次数

如何制作具有有限值的对象数组

抱歉,如果标题不清楚,请提前声明,但很难用言语描述它。

我拥有的:

const obj = {
 a: 5,
 b: 3,
 c: 0,
 d: 9
}
Run Code Online (Sandbox Code Playgroud)

我想要拥有什么:

const arr = [[a, 5] ,[b, 3]]
Run Code Online (Sandbox Code Playgroud)

基本上,我尝试编写一个返回条目数组的函数,但它也满足要求:

  • 当值等于 0时不想要对象
  • 值的总和必须小于 10

第一点对我来说很容易,我可以这样做

Object.entries(obj).filter(([k, v])=> v !== 0)
Run Code Online (Sandbox Code Playgroud)

但我无法处理第二个。

我可以reduce在这里使用吗?

javascript arrays reduce filter

0
推荐指数
1
解决办法
74
查看次数

标签 统计

arrays ×1

filter ×1

javascript ×1

react-hooks ×1

reactjs ×1

reduce ×1

typescript ×1