我有一个表,其中每行的最后一列包含一个按钮,用于触发弹出窗口,以"编辑并保存" React应用程序中该行的某些值。部分标准是,在弹出窗口外部单击也将关闭它,同时防止用户在后台单击内容,直到弹出窗口关闭。
为此,我选择使用一个名为reactjs-popup
的软件包。目前,对于所有条件,它都能完美地工作。然而,下一步是在单击按钮时运行一个函数,以便我可以从API中提取数据来填充字段。然而,我发现我无法从用作触发器的按钮的onClick调用任何函数。以下是主要代码片段:
import Popup from 'reactjs-popup' // this is the npm package I used
// more react code, including an arbitrary loadInfo function
<Popup
trigger = {
<Button onClick = {() => { loadInfo() }}
}
modal
nested
>
{ close => (
<div className = "modal1" id = "popupForm">
// popup content with input forms with values to be populated
</div>
}
</Popup>
我遇到的主要问题是触发器中按钮的"onClick"部分。无论我在那里放了什么,当我点击它时,它永远不会运行。当我将同一个按钮作为一个独立的,而不是作为弹出窗口的触发器测试时,它工作正常。
我还试着用
onClick = {loadData()}
但这只会导致函数在渲染后持续运行,并且由于渲染太多而不可避免地中断。有人知道为什么这个reactjs-popup组件不允许在其触发器中使用onClick吗?如果知道,如何解决这个问题?谢谢!
1条答案
按热度按时间58wvjzkj1#
我相信您希望在弹出窗口打开时加载信息。
为此,Popup中有一个prop
onOpen
,它接受一个函数。您可以使用它,或者你可以手动设置
open
prop 的使用状态。在弹出窗口外有一个按钮,当它点击时更新打开状态。