获取渲染元素的组件

Xstoudi

目前,我正在使用React构建一个模态系统。因此,我在侧边栏中有一个按钮,而我的模式是主体中的div。

我有两个在应用程序主要组件的render函数中呈现的组件:

  • 我的模态
  • MyModalOpenButton

这是我需要的:触发MyModalOpenButton的事件onClick时,我需要执行存储在MyModal组件中的函数。

因此,我基本上需要将MyModal的引用存储在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
    }
}
尼桑·托默尔

您尚未共享代码,因此我无法为您提供具体符合您情况的答案,但总的来说:

class MyModal extends React.Component<any, any> {
    public render() {
        ...
    }

    public onButtonClick() {
        ...
    }
}

interface MyModalOpenButtonProps {
    onClick: () => void;
}
class MyModalOpenButton extends React.Component<MyModalOpenButtonProps, any> {
    public render() {
        return <button onClick={ this.props.onClick } />
    }
}

class Main extends React.Component<any, any> {
    private myModal: MyModal;

    public render() {
        return (
            <div>
                <MyModalOpenButton onClick={ this.onButtonClick.bind(this) } />
                <MyModal ref={ modal => this.myModal = modal } />
            </div>
        );
    }

    private onButtonClick() {
        this.myModal.onButtonClick();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

传奇在组件渲染后获取数据

来自分类Dev

获取网页元素->返回元素+ CSS样式->本地渲染元素?

来自分类Dev

C#渲染HTML以获取元素的高度

来自分类Dev

将多个React组件渲染到单个DOM元素中

来自分类Dev

如何在功能组件中渲染嵌套元素?

来自分类Dev

ReactRouter 将渲染组件路由到容器元素

来自分类Dev

Vue.js在组件中获取元素

来自分类Dev

如何获取当前Vue组件的DOM元素?

来自分类Dev

NgComponent:如何从DOM元素获取组件实例?

来自分类Dev

Web组件,如何通过Id获取元素?

来自分类Dev

Vue.js在组件中获取元素

来自分类Dev

在通用应用中渲染reactjs组件之前如何获取localStorage?

来自分类Dev

获取已在其中渲染了组件的模板的上下文

来自分类Dev

异步函数进入useEffect在组件渲染后获取数据

来自分类Dev

无法从Array对象获取值以渲染React组件[已解决]

来自分类Dev

如何在 AngularJS 中获取组件(div)渲染时间

来自分类Dev

在渲染之前将 ajax 获取的数据设置为组件

来自分类Dev

动态 v-for 渲染从 http 获取结果到 vue 组件

来自分类Dev

在渲染之前添加数据后如何获取子组件?

来自分类Dev

递归渲染组件时,React-redux 未获取状态

来自分类Dev

尽管导入了组件,但获取组件是未知元素错误

来自分类Dev

如何获取未使用javascript渲染的dom元素?

来自分类Dev

使用条件渲染渲染组件

来自分类Dev

自定义JSF组件渲染器:如何在另一个元素周围渲染HTML

来自分类Dev

Angular2获取元素/组件样式的正确方法

来自分类Dev

React-从子DOM元素获取React组件?

来自分类Dev

Angular2 Dart-获取组件的子元素

来自分类Dev

如何在Vue.js中获取组件元素的offsetHeight?

来自分类Dev

在元素丰富的Web组件中获取异步数据

Related 相关文章

  1. 1

    传奇在组件渲染后获取数据

  2. 2

    获取网页元素->返回元素+ CSS样式->本地渲染元素?

  3. 3

    C#渲染HTML以获取元素的高度

  4. 4

    将多个React组件渲染到单个DOM元素中

  5. 5

    如何在功能组件中渲染嵌套元素?

  6. 6

    ReactRouter 将渲染组件路由到容器元素

  7. 7

    Vue.js在组件中获取元素

  8. 8

    如何获取当前Vue组件的DOM元素?

  9. 9

    NgComponent:如何从DOM元素获取组件实例?

  10. 10

    Web组件,如何通过Id获取元素?

  11. 11

    Vue.js在组件中获取元素

  12. 12

    在通用应用中渲染reactjs组件之前如何获取localStorage?

  13. 13

    获取已在其中渲染了组件的模板的上下文

  14. 14

    异步函数进入useEffect在组件渲染后获取数据

  15. 15

    无法从Array对象获取值以渲染React组件[已解决]

  16. 16

    如何在 AngularJS 中获取组件(div)渲染时间

  17. 17

    在渲染之前将 ajax 获取的数据设置为组件

  18. 18

    动态 v-for 渲染从 http 获取结果到 vue 组件

  19. 19

    在渲染之前添加数据后如何获取子组件?

  20. 20

    递归渲染组件时,React-redux 未获取状态

  21. 21

    尽管导入了组件,但获取组件是未知元素错误

  22. 22

    如何获取未使用javascript渲染的dom元素?

  23. 23

    使用条件渲染渲染组件

  24. 24

    自定义JSF组件渲染器:如何在另一个元素周围渲染HTML

  25. 25

    Angular2获取元素/组件样式的正确方法

  26. 26

    React-从子DOM元素获取React组件?

  27. 27

    Angular2 Dart-获取组件的子元素

  28. 28

    如何在Vue.js中获取组件元素的offsetHeight?

  29. 29

    在元素丰富的Web组件中获取异步数据

热门标签

归档