我的编程空间,编程开发者的网络收藏夹
学习永远不晚

react封装Dialog弹框的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

react封装Dialog弹框的方法

本文实例为大家分享了react封装Dialog弹框的具体代码,供大家参考,具体内容如下

Dialog.js

import React, { Component, Children } from "react";
import { createPortal } from "react-dom";
import "../static/css/Dialog.scss"
export default class Dialog extends Component {
  constructor(props) {
    super(props);
    const doc = window.document;
    this.node = doc.createElement("div");
    doc.body.appendChild(this.node);
  }
  componentWillUnmount() {
    window.document.body.removeChild(this.node);
  }
  render() {
    const { children, hideDialog, hide } = this.props;
    let tem = hide ? "hidden" : "";
    console.log("hide", tem);
    return createPortal(
      <div className="dialogBox" style={{ visibility: tem }}>
        <div className="dialog">
          {children}
          <button onClick={hideDialog}>close</button>
        </div>
      </div>,
      this.node
    );
  }
}

Dialog.scss

.dialogBox {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  background: rgba($color: #000000, $alpha: 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  .dialog{
  width: 50%;
  height: 50%;
  text-align: center;;
  background-color: #fff;
  }
}

DialogPage.js 使用


import React, { Component } from "react";
import { Button } from "antd";
import Dialog from "../components/Dialog";

export default class DialogPage extends Component {
  constructor(props) {
    super(props);
    this.state = {
      showDialog: false,
    };
  }
  handleShowDialog = () => {
    this.setState({
      showDialog: !this.state.showDialog,
    });
  };
  render() {
    const { showDialog } = this.state;
    return (
      <div className="dialogPage">
        <h1>DialogPage</h1>
        <Button onClick={this.handleShowDialog}>切换</Button>
        {showDialog && (
          <Dialog hideDialog={this.handleShowDialog} hide={false}>
            <h3>标题</h3>
            <p>这是一个弹窗</p>
          </Dialog>
        )}
      </div>
    );
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

react封装Dialog弹框的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

react结合typescript封装组件的方法是什么

今天小编给大家分享一下react结合typescript封装组件的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。项
2023-07-06

vue.js基于ElementUI如何封装CRUD的弹框组件

本文小编为大家详细介绍“vue.js基于ElementUI如何封装CRUD的弹框组件”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue.js基于ElementUI如何封装CRUD的弹框组件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
2023-07-02

基于React封装一个组件的方法是什么

这篇文章主要讲解了“基于React封装一个组件的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于React封装一个组件的方法是什么”吧!antd 是如何封装组件的仓库地址divi
2023-06-29

Android弹出dialog后无法捕捉back键的解决方法

一、需求在Android开发过程中,弹出dialog后无法捕捉back键,点击back按键无响应。二、解决方案原因:弹出dialog后,activity失去焦点,dialog获得当前焦点。解决办法:在dialog中可以通过调用setOnKe
2023-05-30

react组件封装input框的防抖处理的项目实现

本文主要介绍了react组件封装input框的防抖处理的项目实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-18

php封装app的方法

php封装app的方法:1、创建json.php文件和demo.php文件;2、在php中用数组表示JSON格式数据;3、将数组封闭成JSON数据即可。
2016-12-05

编程热搜

目录