setState和mobx setState有什么区别

时间:2020-07-01 05:35:00

标签: reactjs

很快我在重新渲染之前以某种方法调用setState之后检查状态,我发现状态值没有改变,因为尚未遵循渲染。到目前为止,我一直遵循这个概念。

但是,当涉及基于类的组件中的Mobx action方法时,我看到状态在重新渲染之前已经更改。

使用mobx时渲染上有什么区别吗?


  // functional component 
... 
 const [state, setState] = useState(false); 
 
 const init = () => {
   if(..some condition logic){
  console.log('check state before setState()', state) // false
  setState(true);
  console.log('check state after setState()', state) // false
  } 
 } 
 useEffect(() => {
    init(); 
  },[])  

 

使用Mobx

 //class based component 
 ... 
 @observable flag = false;
 
 @action 
 setFlag( bool ) {
   this.flag = bool;  
 }
 init(){
   if(... some condition logic) {
     console.log (this.flag) // false 
     setFlag(true); 
     console.log(this.flag) // true 
   } 
 } 
 componentDidMount() {
  init(); 
 } 

0 个答案:

没有答案
相关问题