簡體   English   中英

如何雙擊切換 React 組件的可見性?

[英]How to Double Click Toggle visibility of React Component?

目前有一個彈出組件顯示使用onDoubleClick()處理程序雙擊。但我想在雙擊彈出組件時關閉該彈出窗口,但我似乎無法讓它工作。 這是我一直在嘗試的,思考過程只是將toggleModal設置為false,它應該可以工作。

const [selectedImageId, setSelectedImageId] = useState(-1);
const [toggleModal, setToggleModal] = useState(false);

const handleModalPopupOnClick = (id) => {
    setSelectedImageId(id);
    setToggleModal(true);
};

return (
      <div>
         {toggleModal && <PopupModal onDoubleClick={setToggleModal(false)}/>}
          <div onDoubleClick{()=> handleModalPopupOnClick(image.id)>Open Popup</div>
      </div>
     

)

有任何想法嗎? 感謝您的任何建議或指導。

{toggleModal && <PopupModal onDoubleClick={setToggleModal(false)}/>}

渲染組件時立即使用參數 false 調用setToggleModal ,我相信undefined成為onDoubleClick的值。 (如果setState有返回值,則不是 100%)

要解決您的問題,您應該將其作為道具提供:

{toggleModal && <PopupModal onDoubleClick={() => setToggleModal(false)}/>}

這是提供 function 定義,而不是調用 function。

也許PopupModal是您的自定義組件,因此它不提供onDoubleClick事件。

onDoubleClick在這一行:

{toggleModal && <PopupModal onDoubleClick={setToggleModal(false)}/>}

只是一個道具。 因此,您必須在PopupModal內的onDoubleClick事件的處理程序中調用props.onDoubleClick

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM