目录
前言
很明显, 这是一道面试题, 下图是原题
初探
刚开始看到这个面试题, 心想这不就是一个自定义hook就可以解决的事吗, 于是就开始撸代码
思路
- 封装一个自定义hook 名为useStateInClass.js
- useStateInClass 返回一个 state 和 setState
- useStateInClass 保存state 状态 和 setState回调
- useStateInClass 在useEffect中, 进行调用
App.js 代码如下
import { useStateInClass} from './hook/useStateInClass'
function App() {
let [state, setState] = useStateInClass({ stateA: 1, stateB: 2 })
const handleClick = () => {
setState({ stateA: Math.random() }, () => {
console.log('state', state)
})
}
return (
<div className="App">
<p>{J