[英]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.