복붙노트

[REACTJS] 후크 반응 - 수정 된 상태는 즉시 반영하지

REACTJS

후크 반응 - 수정 된 상태는 즉시 반영하지

해결법


  1. 1.많은 setState를 같은 후크를 사용하여 상태 업데이트 동작은 재 렌더링 및 업데이트 따라서 변화가 immedialtely 볼 수 없습니다 필요합니다. 당신이 handleVisibleChange 방법의 상태 외부 로그온을 시도하지만, 당신은 업데이트 상태를 볼 수있는 경우

    많은 setState를 같은 후크를 사용하여 상태 업데이트 동작은 재 렌더링 및 업데이트 따라서 변화가 immedialtely 볼 수 없습니다 필요합니다. 당신이 handleVisibleChange 방법의 상태 외부 로그온을 시도하지만, 당신은 업데이트 상태를 볼 수있는 경우

    export const NodeMenu: React.SFC<NodeMenuProps> = props => {
      const [isVisible, setIsVisible] = useState(false)      
    
      const hide = () => {
        setIsVisible(false)
      }
    
      const handleVisibleChange = (visible: boolean) => {
        console.log(visible) // visible is `true` when user clicks. It works
        setIsVisible(visible) // This does not set isVisible to `true`.
      }      
    
      console.log({ isVisible });
      return (
        <div className={props.className}>
          <div className={styles.requestNodeMenuIcon}>
            <Popover
              content={props.content}              
              title={props.title}
              trigger="click"
              placement="bottom"
              visible={isVisible}
              onVisibleChange={handleVisibleChange}
            >
              {props.button}
            </Popover>
          </div>
        </div>
      )
    }
    

    모든 행동에는 상태가 업데이트가 useEffect 후크 등을 사용하여 수행 할 수 있습니다 여부를 기준으로 취할 필요가

    useEffect(() => {
       // take action when isVisible Changed
    }, [isVisible])
    
  2. from https://stackoverflow.com/questions/53428291/react-hooks-modified-state-not-reflecting-immediately by cc-by-sa and MIT license