Javascript 如何使用React中的挂钩预初始化状态?
基本上,在类组件中,我们使用如下初始值预先初始化构造函数中的状态Javascript 如何使用React中的挂钩预初始化状态?,javascript,reactjs,react-native,react-hooks,Javascript,Reactjs,React Native,React Hooks,基本上,在类组件中,我们使用如下初始值预先初始化构造函数中的状态 constructor(props){ super(props); this.state = { count: 0 } } 但是在引入钩子之后,所有类组件都变成了具有状态的功能组件 但我的问题是如何在React v16.7.0中使用钩子将计数状态预初始化为0 文档中的示例显示: const [count, setC
constructor(props){
super(props);
this.state = {
count: 0
}
}
但是在引入钩子之后,所有类组件都变成了具有状态的功能组件
但我的问题是如何在React v16.7.0中使用钩子将计数状态预初始化为0
文档中的示例显示:
const [count, setCount] = useState(0);
传递给useState的参数(例如本例中的“0”)是初始值。根据React文档,您可以将初始值传递给useState钩子
const [state, setState] = useState(initialState);
下面是一个示例,说明了类和函数中的状态是如何通过钩子初始化的: 基本上,
useState()
的第一个参数是初始状态
类反类扩展了React.Component{
建造师(道具){
超级(道具);
this.state={count:0};
}
render(){
返回
类别:
计数:{this.state.Count}
这个.setState({
计数:this.state.count+1
})}>增加
;
}
}
函数反函数(){
const[count,setCount]=React.useState(0);//此处为初始状态。
返回(
功能:
计数:{Count}
setCount(计数+1)}
>增加
);
}
ReactDOM.render(
,document.querySelector(“#app”)代码>
如果要在加载数据(从api获取数据)后设置初始状态,可以在React钩子中使用“useEffect”。它等于类组件中的“componentWillReceiveProps”。所以,当您在useEffect中设置状态值时,请确保避免无限循环
const [count,setcount] = useState(0)
useEffect(()=>{
setcount(api.data.count) // api.data.count from api after update store
},[])
如果我想初始化20个不同的状态变量呢?我是否需要使用useState(0,“test”,23,“male”,等等)?如果希望它们是独立的状态变量,那么可以为每个变量调用一次“useState”(请参阅同一文档页面的“使用多个状态变量”部分)。或者,您可以让状态变量成为具有您想要的任何结构的对象(例如useState({count:0,gender:“male”})。如果我想初始化大约20个不同的状态变量,该怎么办?我是否需要使用useState(0,“test”,23,“male”;?您应该为每个变量声明它。谢谢。您能帮助我理解,如果我有一个以上的状态字符串变量,并且我想用初始值和计数对其进行预初始化,那么会发生什么情况。如何使用useState预初始化多个变量?是的,您可以在组件中拥有任意数量的useState
如果它太多,你可以使用一个useState
和一个对象作为值。请参阅此链接以获取示例-你可以就此提出另一个问题,我可以在那里回答。