【发布时间】:2017-03-12 19:41:18
【问题描述】:
目前,我正在使用 React 制作模态系统。 所以我在侧边栏中有一个按钮,而我的模态是正文中的一个 div。
我有两个组件在我的应用程序主要组件的渲染函数中呈现:
- 我的模式
- MyModalOpenButton
这是我需要的: 当 MyModalOpenButton 的 onClick 事件被触发时,我需要执行一个存储在 MyModal 组件中的函数。
所以我基本上需要将 MyModal 的 ref 存储在一个 var 中。
我该怎么做?
代码:
import * as ReactDOM from "react-dom";
import * as React from "react";
import { MyModal } from "./component/modal/my-modal";
import { SettingsButtons } from "./component/settings-buttons";
import { CustomComponent } from "./custom-component";
class App extends CustomComponent<{}, {}>{
constructor() {
super();
}
render() {
return (
<div>
<div className="sidebar">
<ul>
<li>
1
</li>
<li>
2
</li>
<li>
3
</li>
</ul>
<SettingsButtons />
</div>
<div className="mainContent">
</div>
<footer>TODO</footer>
<MyModal />
</div>
);
}
}
const app: App = ReactDOM.render(<App />, document.querySelector("#root")) as App;
和
import * as ReactDOM from "react-dom";
import * as React from "react";
import { CustomComponent } from "./../../custom-component";
import { ButtonComponent } from "./button";
export class MyModalOpenButton extends ButtonComponent<{}, {}> {
constructor() {
super();
}
render() {
return (
<li id="open-button" onClick={this.onClick}>
<i className="fa fa-plus" aria-hidden="true"></i>
</li>
);
}
onClick(event: React.MouseEvent<HTMLElement>) {
// Should open the modal
}
}
【问题讨论】:
-
您可以编辑您的问题并为您的组件添加代码吗?
-
您可能想看看我是如何在 ConfirmModal 和 ControlledConfirmModal 中的 github.com/Frazer/react-meteor-modal/tree/master/demo/lib/jsx 实现回调的。
标签: javascript reactjs typescript components element