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

常见的导航网站有哪些seo专员工资一般多少

常见的导航网站有哪些,seo专员工资一般多少,天津网站建设怎么样,wordpress禁止谷歌背景 父组件内引入了一个弹窗组件,弹窗组件使用了完全内聚的开发方法; 实现思路 父组件内通过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.15wanjia.com/news/5110.html

相关文章:

  • linux主机上传网站昆明seo优化
  • 南宁正规公众号网站建设推广河北网站建设案例
  • 个体工商户能网站备案吗关键字挖掘机爱站网
  • 国家精品资源共享课程建设网站百度电话客服
  • 无线网站建设b2b平台有哪几个
  • 建邺区建设局网站网店代运营公司
  • 网站开发上传视频教程会计培训班需要学多长时间
  • 网站扁平化结构和树形结构最有效的网络推广方式和策略
  • 企业门户网站建设 北京seo优化工具推荐
  • 沧州建设局网站百度网站的网址
  • 做网站是做完给钱还是青岛seo精灵
  • 删除百度收录的网站网址查询站长工具
  • 码迷seo知乎seo优化
  • 房山网站制作网站关键词查询
  • 个人网站域名快速备案流程java培训班学费一般多少
  • 海口手机网站制作seo公司排名教程
  • 建设网站定制国家再就业免费培训网
  • 做静态网站的软件怎样创建网页
  • 合肥建立网站360优化大师官方最新
  • 郑州网站开发公外贸平台有哪些?
  • 宁波网站建设多少钱一个微信营销推广
  • 江西宜春网站建设报价视频推广
  • 环保公司网站建设内容百度关键词搜索推广
  • 北京南站在几环网络营销和推广做什么
  • 做外贸要访问国外的网站怎么办人工智能培训机构哪个好
  • 做儿童交互网站百度百家号官网登录
  • 成都专门做公司网站的公司上海网络推广排名公司
  • 游戏外包公司怎么接活长沙官网seo技术厂家
  • .aspx网站开发pdf商业策划公司十大公司
  • wordpress 错误代码500武汉外包seo公司