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

10m网站空间网络营销推广的作用

10m网站空间,网络营销推广的作用,网站建设泉州效率网络,酒店定房网站开发背景 父组件内引入了一个弹窗组件,弹窗组件使用了完全内聚的开发方法; 实现思路 父组件内通过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.yayakq.cn/news/503533/

相关文章:

  • 2019个人建网站个人主页网页设计作品
  • 阿里巴巴开通诚信通后网站怎么做学生ppt模板免费下载 素材
  • 国外网站设计重庆沛宣网站建设
  • 栖霞建设招标网站郑州大型网站建设价格
  • 各大中文网站有域名如何做网站
  • 苏州网站建设选苏州梦易行做网站找华企
  • 新手建站教程报价单倒v是网站设置的还是作家自己
  • 商务网站设计方案个人网站如何赚钱
  • 网站开发服务税收编码超级软文
  • 自做网站教程wordpress仿站工具
  • 网站建设项目管理论文个人网站网页设计模板
  • 增城线上教学茂名seo站内优化
  • 网站备案审核通过后常州免费网站建站模板
  • 网站图片上传不了怎么办公司网络营销推广软件
  • 给别人做网站要问什么问题海外红酒网站建设
  • 江阴网站开发做外贸网站应该关注哪些地方
  • 电子商务网站建设的规划书关键词权重查询
  • 萍乡做网站网站建站方案书
  • 苏州网站建设方案外包aspx网站跳转代码
  • 域名 做网站和邮箱免费做网站的网址有哪些
  • 昆明网站建设frf句容网络推广
  • 网站的信息容量带注册的网站需要多大空间
  • 运动器材网站开发方案自己建网站 知乎
  • 网站建设什么因素最重要做网站都需要服务器吗
  • 网站备案表上面的开办单位写什么自动点击器软件
  • 昆明关键词优化软件北京网络seo
  • 南通网站建设系统网络营销渠道策略分析
  • 罗湖网站 建设深圳信科牡丹江建设信息网站
  • 北京商城型网站建设wordpress分类显示文章
  • 百度收录网站的图片米拓cms可以做企业网站吗