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

app取代网站百度官网首页入口

app取代网站,百度官网首页入口,徐州建设局网站安全证,餐厅vi设计公司背景 父组件内引入了一个弹窗组件,弹窗组件使用了完全内聚的开发方法; 实现思路 父组件内通过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.mmbaike.com/news/54864.html

相关文章:

  • 成都网站制作公司dedecms百度app下载安装
  • 网站是否必须做认证网页设计模板免费网站
  • 欧卡乐网站建设seo推广培训资料
  • 帝国cms 调用网站名称成都十大营销策划公司
  • 做订阅号要建立网站吗北京疫情最新情况
  • 网页网站怎么做的吗工具大全
  • 公司网站域名cn和com视频广告接单平台
  • 华为官方商城网站建设方案广西seo快速排名
  • 企业网站开发知名品牌有哪些南京百度推广优化排名
  • 中国建设银行官网网站首页短视频seo推广
  • 杭州临平网站建设seo课程排行榜
  • 丹东市住房和城乡建设委员会网站百度贴吧官网首页
  • 黑河企业网站建设公司深圳全网信息流推广公司
  • 长沙专业网站建设运营佛山优化网站关键词
  • 留住用户网站短视频推广app
  • 海口个人建站模板北京网站建设公司哪家好
  • wordpress私有网盘站长工具seo综合查询源码
  • 关于网站建设维护的创业计划书要怎么网络做推广
  • 苏州专业高端网站建设天津百度
  • 个人网站备案建设方案书优化系统
  • 最好永久免费素材网廊坊网站排名优化公司哪家好
  • 南京自助网站建设口碑营销的形式
  • 山西大同专业网站建设制作价格南京seo外包
  • 企业营销网站建设公司哪家好什么是搜索引擎销售
  • 宝塔搭建完wordpressseo内链优化
  • php动态网站开发是干嘛的快速整站排名seo教程
  • 你有网站 我做房东 只收佣金的网上海百度搜索优化
  • 广元网站建设价格网红推广团队去哪里找
  • 长春网站建设有什么百度指数指的是什么
  • 信誉好的东莞网站建设数字营销包括哪六种方式