React hooks useEffect only on update?

前端 未结 8 949
予麋鹿
予麋鹿 2020-12-12 18:53

If we want to restrict useEffect to run only when the component mounts, we can add second parameter of useEffect with [].



        
8条回答
  •  失恋的感觉
    2020-12-12 19:47

    You can get around it by setting the state to a non-boolean initial value (like a null value) :

      const [isCartOpen,setCartOpen] = useState(null);
      const [checkout,setCheckout] = useState({});
    
      useEffect(() => {
    
        // check to see if its the initial state
        if( isCartOpen === null ){
    
          // first load, set cart to real initial state, after load
          setCartOpen( false );
        }else if(isCartOpen === false){
    
          // normal on update callback logic
          setCartOpen( true );
        }
      }, [checkout]);
    

提交回复
热议问题