Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 20x 20x 4x 20x | import React, { useState } from 'react'
import { useUpdateEffect } from 'react-use'
/**
* 给 useState 插上依赖的翅膀。依赖变化时会更新状态。
*
* @param state 状态
* @param deps 依赖
* @returns 返回结果同 useState
*/
export function useStateWithDeps<S>(
state: S | (() => S),
deps: React.DependencyList,
): [S, React.Dispatch<React.SetStateAction<S>>] {
const [value, setValue] = useState(state)
useUpdateEffect(() => {
setValue(state)
}, deps)
return [value, setValue]
}
|