React hooks,每个状态值一个钩子?
我对Hooks还是陌生的,并且非常有兴趣在将来的项目/工作中使用它。我很好奇要了解更多关于在具有许多不同状态的组件上使用挂钩的最佳实践。据我所知,对于每个状态值,都可以使用useState
挂钩。
例如,我们有一个基于类的组件,其状态为:
this.state = {
state1: 0,
state2: '',
state3: false,
state4: [],
state5: {},
state6: null
}
如果我要使用钩子进行转换...最佳做法是针对每个状态使用useState
(总共6个useState
),还是有更好的方法?
谢谢大家!
回答如下:我可以选择的最佳做法是:
const [state1, setState1] = useState(0)
const [state2, setState2] = useState('')
const [state3, setState3] = useState(false)
const [state4, setState4] = useState([])
const [state5, setState5] = useState({})
因为要控制的每个本地状态都是差异类型。而且您可以更灵活地控制每个变量。
但是,如果要处理您的案件,您可以那样做:
const [state, setState] = useState({
state1: 0,
state2: ''
state3: false
})
以及更新state1和state2:
setState({
...state,
state1: 1,
state2: "yada"
})