反应钩子状态并将其传递给其他类?

时间:2020-09-24 14:29:41

标签: javascript reactjs react-hooks

我有一个关于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>);

}

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,请检查Accessing state from callback

恕我直言,如果要访问最新状态,应使用useRef

您基本上只有一个model实例,它指向第一个传递的state