当前位置: 首页 > news >正文

常见的导航网站有哪些品牌营销经典案例

常见的导航网站有哪些,品牌营销经典案例,企业网站建设专业,平乡企业做网站背景 父组件内引入了一个弹窗组件,弹窗组件使用了完全内聚的开发方法; 实现思路 父组件内通过ref获取的子组件,通过current调用子组件的方法,子组件需要通过forwardRef进行“包装”导出,通过useImperativeHandle暴露…

背景

父组件内引入了一个弹窗组件,弹窗组件使用了完全内聚的开发方法;

实现思路

父组件内通过ref获取的子组件,通过current调用子组件的方法,子组件需要通过forwardRef进行“包装”导出,通过useImperativeHandle暴露可以被current使用的方法;

父组件代码

import React, { useState, useRef } from "react";
// 引入组件
import Edit from './component/edit';
export default function Parent() {// 定义组件refconst editRef = useRef(null);/*** @method 新建* @returns {viod}*/const onCreate = () => {// 调用子组件的openModal方法editRef.current.openModal();};return (<div className="connect-page page"><Button type="primary" onClick={onCreate}>新建</Button><Edit ref={ editRef} /></div>);
}

子组件代码

import React, {useState, forwardRef, useImperativeHandle} from 'react';
import {Modal } from 'antd';
function Edit(props, ref) {// 定义弹窗状态变量const [isModalOpen, setIsModalOpen] = useState(false);/*** @method 打开弹窗* @returns {viod}*/const openModal = () => {setIsModalOpen(true);};/*** @method 关闭弹窗* @returns {viod}*/const closeModal = () => {console.log('关闭');setIsModalOpen(false);};/*** @method 确定* @returns {viod}*/const handleOk = () => {console.log('确定');closeModal();};/*** @method 取消* @returns {viod}*/const handleCancel = () => {console.log('取消');closeModal();};useImperativeHandle(ref, () => {return {openModal}});return (<Modal title="新建" open={isModalOpen} onOk={handleOk} onCancel={handleCancel}><p>Some contents...</p><p>Some contents...</p><p>Some contents...</p></Modal>)
}
export default forwardRef(Edit);

踩坑

1. Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?

解决方案:子组件使用forwardRef进行“包装”后进行导出;

// 子组件
export default forwardRef(需要导出的组件);

2. 父组件找不到子组件方法

解决方案:子组件内使用useImperativeHandle对方法进行暴露;

import React, {// 其他引入...useImperativeHandle
} from 'react';
function Edit(props, ref) {/*** @method 测试* @returns {viod}*/const test = () => {console.log('测试');};// 暴露方法,使方法可以被父组件通过ref调用useImperativeHandle(ref, () => {return {test}});return (<>// ...</>)
}
export default forwardRef(Edit);

http://www.ds6.com.cn/news/100162.html

相关文章:

  • windows2008网站西安seo霸屏
  • WordPress图片裁减成都关键词优化报价
  • 人才市场网站建设论文枸橼酸西地那非片的作用及功效
  • 功能性网站开发seo标签优化
  • 什么专业学做网站今天nba新闻最新消息
  • wordpress安装插件无法创建目录360优化大师官方官网
  • 怎么把网站黑了企业seo排名
  • 钦州住房和城乡建设委员会网站seo排名优化首页
  • 网站开发流程属于制作与开发百度seo排名优化费用
  • 网站服务器用什么好处属于seo网站优化
  • 网站 栏目 英语seo辅助工具
  • 网站建设费怎么写会计科目广告公司推广文案
  • 网页版传奇合击版本北京seo工程师
  • 铜陵网站建设搜索引擎优化简称seo
  • 网站管理员怎么做seo网站优化教程
  • 杨浦企业网站建设长沙网络推广外包
  • 如何用国外网站做头条上海网站搜索引擎优化
  • wordpress 以下属于网站seo的内容是
  • 武汉网站制作公司杭州优化seo
  • 网站开发如何模块化统计工具
  • 深圳网站建设简介企业培训课程ppt
  • 邢台网站建设公司软文营销怎么写
  • 网站集约化建设行业规定谈谈对seo的理解
  • 网站设计的资质叫什么域名注册网站哪个好
  • 中卫网站推广优化公司免费b站推广网站
  • 阳江市住房和城乡建设局网站提升seo排名平台
  • 网站模板用什么软件做wordpress官网入口
  • 做装修的网站是不是骗人的域名解析查询
  • 武汉网站关键词排名中小型企业网站设计与开发
  • 佛山网站建设广州百度推广电话