React实现pc端的弹出框效果

本文实例为大家分享了React实现pc端弹出框效果的具体代码,供大家参考,具体内容如下

最近学习react碰见了一个小坑 不知道为什么 我在做一个弹出框的小demo

很简单的一个小demo 就是桌面上一个按钮点击 出现一个弹出框 弹出框下面有一个遮罩层

1.我们现在src文件夹 下建立一个 Dialog 组件

import React,{Component} from 'react' 
import '../dialog.css'
export default class Dialog extends Component {
    constructor(props){
       super(props);
       this.state={}
    }
    render(){
        return (
            <div className="mask" style={{display:this.props.display}}>
                <div className="content">
                    <button onClick={this.props.hide}>&times;</button>
                </div>
            </div>
        );
    }
}

2.然后就是css样式

.mask{
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    right: 0;
    background-color: #000;
    opacity: 0.4;
    color:#f00;
}
.content{
    position: fixed;
    height: 300px;
    width: 300px;
    left: 50%;
    top:50%;
    background-color: #fff;
    transform: translate(-50%,-50%);
}

3.再然后就是index.js的入口文件

import  React,{Component } from 'react'
import ReactDOM from 'react-dom'
import Dialog from './components/Dailog';
import './index.css'
class Parent extends Component {
    constructor(props){
        super(props);
        this.state={display:'block'};
        this.tan=this.tan.bind(this);
        this.hide=this.hide.bind(this);
    }

    tan(){
        console.log(this);
        this.setState({display:'block'})
    }

    hide(){
        this.setState({display:'none'})
    }

    render(){
        return (
            <div>
               // 就是这里 不知道为什么我一把组件放到按钮下面  遮罩层 就不会覆盖掉按钮 很奇怪
                <Dialog display={this.state.display} hide={this.hide} />
                <button onClick={this.tan}>弹出</button>
            </div>
        );
    }
}
ReactDOM.render(<div><Parent /></div>,document.getElementById('root'))

在react中 子类调用父类的方法 是父类在子组件上面 绑定 方法然后在子组件中调用

<Dialog display={this.state.display} hide={this.hide} />  // 父类 通过props传递过去
 <button onClick={this.props.hide}>&times;</button>   // 子类调用

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

(0)

相关推荐

  • 使用react+redux实现弹出框案例

    本文实例为大家分享了用react+redux实现弹出框案例的具体代码,供大家参考,具体内容如下 redux 实现弹出框案例 1.实现效果,点击显示按钮出现弹出框,点击关闭按钮隐藏弹出框 新建弹出框组件 src/components/Modal.js, 在index.js中引入app组件,在app中去显示计数器和弹出框组件 function Modal ({ showState, show, hide }) {     const styles = {         width: 200,  

  • 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 Compon

  • React实现动态调用的弹框组件

    最近在用react开发项目,遇到一个需求——开发一个弹框组件.在react中创建一个组件是很简单的,只需要使用class创建并引入就可以了,但是要做到可以用js调用这个组件而不是写在jsx结构里,那就需要用到ReactDOM.render这个方法了. 首先先来屡一下需求: 1.弹框里的可配置字段:标题文字,提示文字,确认和取消按钮的显示隐藏以及文字.2.点击确认和取消按钮后,可以触发相应的事件.3.是否为短提示,短提示的时候,确认和取消按钮隐藏,并且2s后消失. 接下来用两种方法创建一个弹框组件

  • react使用antd表单赋值,用于修改弹框的操作

    1.使用getFieldDecorator的initialValue 2.在state里定义一个变量存表格的数据 3.给打开弹框的方法传个record 4.把表格里的值存到state 5.把在state里存的值传给弹框 6.获取传过来的值 7.在取消方法和修改成功后中给赋空值,要不然,点击添加的方法表单里面会有值 7.OK 补充知识:react中使用antd的表单重置数据 resetFields 重置一组输入控件的值(为 initialValue)与状态,如不传入参数,则重置所有组件 Funct

  • React Native实现进度条弹框的示例代码

    本文介绍了React Native实现进度条弹框,分享给大家 我们在上传或者下载文件时候,希望有一个进度条弹框去提醒用户取当前正在上传或者下载,也允许用去取点击取消上传或者下载. 首先实现进度条. import React, { PureComponent } from 'react'; import { StyleSheet, View, Animated, Easing, } from 'react-native'; class Bar extends PureComponent { con

  • react封装全局弹框的方法

    本文实例为大家分享了react封装全局弹框的具体代码,供大家参考,具体内容如下 弹框效果图 文件布局 index.js /* eslint-disable react/no-render-return-value */ import React, { Component } from 'react' import { is, fromJS } from 'immutable' import ReactDOM from 'react-dom' import './alert.less' const

  • React封装弹出框组件的方法

    本文实例为大家分享了React封装弹出框组件的方法,供大家参考,具体内容如下 效果图 文件目录 alertList.tsx 用于容纳弹出框的容器 import React from "react"; export const HAlertList = () => {     return (         <div             id="alert-list"             style={{                 posi

  • React封装全屏弹框的方法

    本文实例为大家分享了React封装全屏弹框的具体代码,供大家参考,具体内容如下 web开发过程中,需要用到弹框的地方很多,有时候,产品经理的原型是全屏弹框,而常用的组件库里封装的一般都不是全屏的. 如下图所示:这就是一个全屏弹框. 废话不多说,直接上代码: //  FullScreen.tsx import React, { memo, useEffect } from 'react'; import { Spin } from '@/components/antd'; import IconU

  • 解决react-native软键盘弹出挡住输入框的问题

    这是效果: 代码: import React, {Component} from 'react'; import { View, Text, Button, StyleSheet, TextInput, ScrollView, KeyboardAvoidingView, Dimensions } from 'react-native'; import { StackActions, NavigationActions, withNavigation } from 'react-navigatio

  • react-native 封装选择弹出框示例(试用ios&android)

    在开发 App 的时候,经常会使用到对话框(又叫消息框.提示框.告警框). 在web开发中经常会用得到.今天就来介绍了一下react-native 封装弹出框 之前看到react-native-image-picker中自带了一个选择器,可以选择拍照还是图库,但我们的项目中有多处用到这个选择弹出框,所以就自己写了一下,最最重要的是ios和Android通用.先上动态效果图~ 一.封装要点 1.使用动画实现弹框布局及显示隐藏效果 2.通过一个boolean值控制组件的显示隐藏 3.弹框选项数组通过

随机推荐