我有一个关于react hook的useState的问题。我通过构造函数传递给ModelClass的状态不应该总是最新的,但它会记住传递给类的构造函数的第一个状态。我想在课堂上获得关于该州的最新参考。
import React, { useState, useEffect} from "react";
class ModelClass{
constructor(state, setState){
this.state = state;
this.setState = setState
}
stateHasChanged(){
console.log(this.state);
}
}
export default function App(){
const [state, setState] = useState("default");
const [model, _] = useState(()=> new ModelClass(state, setState));
useEffect(()=>{
setState("first change");
setTimeout(()=>setState("second change"), 2000);
},[]);
useEffect(()=>{
model.stateHasChanged();
},[state]);
return (<div>
This
</div>);
}
答案 0 :(得分:0)
我有一个类似的问题,请检查Accessing state from callback。
恕我直言,如果要访问最新状态,应使用useRef
。
您基本上只有一个model
实例,它指向第一个传递的state
。