useResetState
作用
提供重置 state 方法的 Hooks,用法与 React.useState 基本一致
原理
通过
useMemoizedFn
来缓存setState
设置为初始值的方法,执行方法达到重置的效果
源码
ts
import { useState } from 'react'
import type { Dispatch, SetStateAction } from 'react'
import useMemoizedFn from '../useMemoizedFn'
type ResetState = () => void
const useResetState = <S>(
initialState: S | (() => S)
): [S, Dispatch<SetStateAction<S>>, ResetState] => {
// 用来缓存state
const [state, setState] = useState(initialState)
// 通过useMemoizedFn来缓存setState设置为初始值的方法
const resetState = useMemoizedFn(() => {
setState(initialState)
})
return [state, setState, resetState]
}
export default useResetState