[英]How to call a React component function from inside a javascript function?
我在一个事件函数中,我想创建一个新的警报弹出窗口(我正在使用react-portal库):
onNewAlert: function(username) {
var divModal = (
<Portal ref={'Portal'+username}>
<div id={'div'+username}>
<br /><br/ >Alert for {username}
</div>
</Portal>);
...
}
但是然后我将不得不调用Portal
内的函数。 如果我在render()
函数中,我通常可以使用引用来执行此操作,但是我处于事件中。
this.refs['Portal'+username].openPortal(); // openPortal is a function of the Portal component
有没有办法为javascript函数中动态创建的组件调用组件函数?
即使您可以调用portal.openPortal()
它也不会做任何事情,因为在事件处理程序中创建的组件不会附加到DOM。
事件处理程序应该更改将触发render()
的组件状态,而不是尝试在事件处理函数中呈现Portal。
onNewAlert: function(username) {
this.setState({ showAlert: true });
}
然后, render()
函数将状态变量用于Portal
组件的isOpened
属性:
render: function () {
return (
<div>
...
<Portal isOpened={this.state.showAlert}>
...
</Portal>
</div>
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.