父级调用子级的方法,解决 observer 和 forwardRef 冲突报错

场景:

需要实现,在父级组件,触发子组件中的 handleSearch 方法

思路:

通过 useRef 实现,配合 forwardRef、useImperativeHandle

在开发过程中,因为项目中用到了 observer,导致和 forwardRef 冲突报错

父级调用子级的方法,解决 observer 和 forwardRef 冲突报错

方案:

通过 observer(comp, { forwardRef: true }) 实现

父组件

javascript;gutter:true; const journalRef = useRef(null);</p> <p>const handleInstruct = useCallback(() => { if(journalRef?.current) journalRef.current.handleSearch(); }, [journalRef?.current]);</p> <p>return (</p> <p>);</p> <pre><code> 子组件 ;gutter:true;
import React, { useImperativeHandle } from ‘react’;
import { observer } from ‘mobx-react-lite’;

const Journal = (props, ref) => {
const handleSearch = () => {
//
};

useImperativeHandle(ref, () => ({
handleSearch,
}));

};

export default observer(Journal, { forwardRef: true });

.

Original: https://www.cnblogs.com/crazycode2/p/16500409.html
Author: 每天都要进步一点点
Title: 父级调用子级的方法,解决 observer 和 forwardRef 冲突报错

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547085/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 安装webgot漏洞实验平台时遇到的java环境配置问题

    6 .安装并注册 依次执行命令: 将已下载的Java版本登记为替代版本,将其改成作为默认版本来使用: update-alternatives –install /usr…

    技术杂谈 2023年7月11日
    082
  • PHP——16进制转10进制

    两种方法。 <?php echo hexdec("00EF"); // 239 echo base_convert("00EF",16…

    技术杂谈 2023年5月31日
    095
  • Vue学习笔记(一):Vue简介

    vue简介 ¶ Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库…

    技术杂谈 2023年7月24日
    0108
  • [学习笔记]Java多态

    多态是同一种行为具有多个不同表现形式的能力,同一事件发生在不同的对象上会产生不同结果; 多态的同一个接口,使用不同的实例而执行不同的操作; 多态性是对象的多种表现形式的体现; 多态…

    技术杂谈 2023年7月24日
    088
  • CodeSmithTemplateModelOutput

    背景:上学那会儿就接触CodeSmith,是一款非常优秀的代码自动生成工具。以前写过好些基本模版,可惜早不知道扔到哪儿去了,如今只能重新开始,把它捡回来,加油。 效果:将数据库 D…

    技术杂谈 2023年7月24日
    072
  • 《码出高效》Chapter2面向对象-读书笔记

    《码出高效Java开发手册》第2章 面向对象 面向对象的抽象、封装、继承、多态的理念,使企业应用大规模化成为可能,有效地降低了软件开发成本、维护成本和复用成本。OOP实践了软件工程…

    技术杂谈 2023年7月10日
    081
  • 零食里的营养成分表百分比什么意思

    原文: http://www.nhc.gov.cn/ewebeditor/uploadfile/2013/02/20130204161215710.pdf 来看看花生的: Orig…

    技术杂谈 2023年5月31日
    0123
  • lsmod——显示已载入系统的模块

    lsmod——显示已载入系统的模块 lsmod 其实就是list modules的缩写,即 列出所有模块. 功能说明:显示已载入系统的模块。 语法:lsmod 说明:执行lsmod…

    技术杂谈 2023年5月31日
    0102
  • asp 遍历文件夹

    转载请注明出处:http://www.cnblogs.com/cloudgamer/ 如有任何建议或疑问,欢迎留言讨论。 如果觉得文章不错的话,欢迎点一下右下角的推荐。 程序中包含…

    技术杂谈 2023年5月30日
    0122
  • Css3图片阴影效果_Css3相册阴影效果(二)

    一、Css3图片阴影效果_Css3相册阴影效果(二) html代码: DOCTYPE html> <html lang="en"> <h…

    技术杂谈 2023年6月1日
    0102
  • Ubuntu16桌面版编译和安装OpenCV4

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kuberne…

    技术杂谈 2023年7月11日
    089
  • 今天学弟问我pip如何永久换源?

    pip如何永久换源 临时使用 我们在使用Python开发的时候,经常要下载第三方模块,最常用的方式就是直接 pip install &#x6A21;&#x5757;…

    技术杂谈 2023年6月21日
    0105
  • hdu 2203 亲和串

    把T串扩展成两倍 然后KMP 注意T的长度要大于P的长度 #include #include #include #include using namespace std; char…

    技术杂谈 2023年5月30日
    0112
  • YAML块样式

    YAML包括两种块标量样式:字面和折叠。块标量由少量指标控制,标题在内容本身之前。 块标量头的示例如下 – %YAML 1.2 !!map { ? !!str &quo…

    技术杂谈 2023年5月31日
    0111
  • mac 工作区

    https://www.zhihu.com/question/20917614 http://www.bjhee.com/mission-control.html 窗口切换 htt…

    技术杂谈 2023年7月11日
    069
  • Qt Xlsx ( QtXlsxWriter ) 使用例程

    这里主要介绍其基本的编程使用方法。首先我们想到就是对xlsx文件进行读写,因此我们有如下的代码: 其运行效果如下: 接下来我们处理数据的是很多时候需要插入折线图、饼状图等等来图像化…

    技术杂谈 2023年5月31日
    0108
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球