react父子组件传参demo

news/2024/7/15 18:37:34 标签: react.js, javascript, 前端

父组件代码
 

javascript">/* eslint-disable @next/next/no-img-element */
"use client";
import React, { useEffect, useState } from "react";
import WxTip from '../components/WxTip'

const Download = () => {
    const [showTip, setshowTip] = useState<boolean>(false)



    useEffect(() => {
        
    },[])


    const onClose = () => {
        setshowTip(false)
    }


    const wxClick = () => {
        setshowTip(true)
    }

    return (
        <div className={'weixinPage'}>
            <div className={'btnView'}>
                <div  onClick={() => wxClick()} className={'btn'}>立即下载</div>
            </div>
            <WxTip onClose={onClose} showTip={showTip} />
        </div>
    )

    
}
export default Download;

子组件jsx代码

javascript">import React from "react"
export interface WxtipProps {
    showTip: Boolean,
    newYear?: Boolean,
    onClose?: Function
}

const WxTip: React.FC<WxtipProps> = (props) => {
    const { showTip , newYear = false,onClose} = props
    const Close = ()=>{
        onClose && onClose()
    }
    const TipView = () => (
        <div className={'wxtip'} onClick={()=> Close()}>
            <span className={'wxTipIcon'}></span>
            <p className={'wxtipTxt'}>点击右上角···<br />选择在浏览器中打开进行下载</p>
            <div className={!newYear ? 'wxtipIcon2' : 'wxtipIconNewYear'}></div>
            <div className={'wxtipIcon3'}></div>                
        </div>
    )
    return (
        <div>
            { showTip && TipView() }
        </div>
    )
}

// WxTip.defaultProps = {showTip:false}

export default WxTip

子组件css代码

.wxtip {
    background: rgba(0, 0, 0, 0.8);
    text-align: center;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1001;
    display: block;
    .wxtipIcon2{
        margin: 0 auto;
        width:58vw;
        height: 70vh;
        background: url("../public/wxtipphone.png") no-repeat;
        background-size: contain;
    }
    .wxtipIconNewYear{
        margin: 0 auto;
        width:58vw;
        height: 70vh;
        background: url("../public/wxtipphonenewYear.png") no-repeat;
        background-size: contain;
    }
    .wxtipIcon3{
        width: 230px;
        height: 230px;
        background: url("../public/prompt2.png") no-repeat;
        background-size: cover;
        border-radius: 50%;
        position: fixed;
        z-index: 999;
        top: 750px;
        right: 56px;
    }
    .wxTipIcon{
        width:110px;
        height: 130px;
        background: url("../public/IndicatingArrow2.png") no-repeat;
        display: block;
        position: absolute;
        right: 20px;
        top: 40px;
    }
    .wxtipTxt{
        color: #FFF;
        margin-top: 80px;
        font-size: 26px;
        margin-bottom: 50px;
        width: 52vw;
        margin-left: 24vw;
        line-height: 58px;
        text-align: left;
    }
}

子组件样式


http://www.niftyadmin.cn/n/5404068.html

相关文章

苹果 Vision Pro零售部件成本价格分析

苹果公司发布的全新头戴式显示器 Apple Vision Pro 虽然售价高达3499美元&#xff0c;但其制造成本同样不菲&#xff0c;根据研究机构 Omdia 的估计&#xff0c;该头显仅零部件成本就超过了1500美元。这款头显的总零部件成本估计为1542美元&#xff0c;这还并不包括研发、包装、…

前端架构: 脚手架通用框架封装之脚手架注册和命令注册开发(教程二)

脚手架注册和命令注册 1 &#xff09;脚手架的注册 接上文&#xff0c;仍旧在 abc-cli 项目中参考&#xff1a;https://blog.csdn.net/Tyro_java/article/details/136381086之前初始化的时候&#xff0c;使用的是 yargs, 现在我们想要使用 commander在cli包中安装 commander $…

1.2 数值计算的误差 (初稿)

1.2.1 误差来源与分类 近似解 与 精确解 之间的误差称为 截断误差 或 方法误差。 eg&#xff1a; 可微函数 f(x) 用泰勒 (Taylor) 多项式 P n ( x ) f ( 0 ) f ′ ( 0 ) 1 ! x f ′ ′ ( 0 ) 2 ! x 2 ⋯ f ( n ) ( 0 ) n ! x n P_{n}(x)f(0)\frac{f^{\prime}(0)}{1!}x\f…

智能驾驶规划控制理论学习05-车辆运动学规划案例分析

目录 案例一——Hybrid A*&#xff08;基于正向运动学&#xff09; 1、基本思想 2、 实现流程 3、启发函数设计 4、分析扩张&#xff08;Analytic Expansions&#xff09; 5、分级规划&#xff08;Hierarchical planning&#xff09; 案例二——State Lattice Planning&…

论文阅读--Diffusion Models for Reinforcement Learning: A Survey

一、论文概述 本文主要内容是关于在强化学习中应用扩散模型的综述。文章首先介绍了强化学习面临的挑战&#xff0c;以及扩散模型如何解决这些挑战。接着介绍了扩散模型的基础知识和在强化学习中的应用方法。然后讨论了扩散模型在强化学习中的不同角色&#xff0c;并对其在多个…

[C语言]——C语言常见概念(1)

目录 一.C语言是什么、 二.C语言的历史和辉煌 三.编译器的选择&#xff08;VS2022为例&#xff09; 1.编译和链接 2.编译器的对比 3.VS2022 的优缺点 四.VS项目和源文件、头文件介绍 五.第⼀个C语言程序 ​​​​​​​ 一.C语言是什么、 ⼈和⼈交流使⽤的是⾃然语⾔&…

leetcode刷题-110 平衡二叉树的判断(递归实现)

题目描述 解题思路 首先解释一下&#xff0c;为什么会做到这个题目&#xff0c;因为博主在按顺序做题的过程中&#xff0c;碰到了一个不会做的题目&#xff08;递归类型&#xff09;&#xff0c;就想着看看题解&#xff0c;发现了一个大佬的文章&#xff0c;就是专门讲的递归&…

[C语言]——C语言常见概念(3)

目录 一.字符和ASCII编码 二.字符串和\0 三.转义字符 四.语句和语句分类 1.空语句 2.表达式语句 3.函数调用语句 4.复合语句 5.控制语句 五.注释 1.注释的2种形式 1.1 /**/ 的形式 1.2 // 的形式 2.注释会被替换 一.字符和ASCII编码 在键盘上可以敲出各种字符&am…