【React】forwardRef 用法

这篇具有很好参考价值的文章主要介绍了【React】forwardRef 用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本用法

  • forwardRef:允许你的组件使用 ref 将一个 DOM 节点暴露给父组件。
import { forwardRef } from 'react';

const MyInput = forwardRef((props, ref) => {
  // ...
});
  • 案例分析:ref 属性是 React 的特殊属性,不能直接使用。
import {useRef} from 'react'

function InputCom({ref}) {
  return (
    <input type='text' ref={ref} />
  )
}

function App() {
  const inpRef = useRef(null)

  const focus = () => {
    inpRef.current?.focus()
  }

  return (
    <>
      <InputCom ref={inpRef} />
    </>
  )
}
  • 上面就会弹出报错信息:
Warning: InputCom: `ref` is not a prop. Trying to access it will result in `undefined` being returned. 
If you need to access the same value Within the child component, you should pass it as a company's prop.
// 警告:InputCom: 'ref不是一个prop。试图访问它将导致返回undefine。如果你需要在子组件中访问相同的值,你应该把它作为公司的prop传递。
  • 如果想传递 ref,这时候就要借助 forwardRef 函数
import { forwardRef, useRef } from "react";

const InputCom = forwardRef((props, ref) => {
  return <input type="text" ref={ref} />;
});

export default function ProRef() {
  const inpRef = useRef(null);

  const focus = () => {
    inpRef.current?.focus();
  };

  return (
    <>
      <InputCom ref={inpRef} />
      <button onClick={focus}>focus</button>
    </>
  );
}

文章来源地址https://www.toymoban.com/news/detail-505785.html

到了这里,关于【React】forwardRef 用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server基础 第三章 数据表基本操作(增删改查,不允许保存更改异常!)

    往表里插数据我们现在有两种方式 第一种是编辑直接修改,第二种是通过查询来修改数据 两种方法的区别 第一种更直接,如果数据量小那么直接改就好了,那如果数据量稍微庞大我们就需要用新建查询来进行表内容的修改了!!!!!!! 只需要新建查询,然后新的查询文

    2023年04月26日
    浏览(53)
  • React的jsx的用法

    React是一个流行的JavaScript库,用于构建用户界面。它使用一种名为JSX的语法扩展来描述组件的结构和样式。JSX是React的核心语言之一,它允许开发人员在JavaScript中编写HTML,从而使代码更加简洁和易于阅读。 JSX是一种语法扩展 ,它允许开发人员在JavaScript中编写类似于HTML的代

    2024年02月10日
    浏览(48)
  • [React] useRef用法和特性

    一般在使用react-hook的时候,我们用到最多的就是定义变量,以及对应的修改变量 下面是一个最基本的 react-hook 应用程序 以上并不是以使用useState的方式来进行对useRef的衬托,两者功能是不同的,只是便于区分 但是如果我想让浏览器渲染的时候,让他的次数自增,这样就会有

    2024年02月01日
    浏览(38)
  • React-hooks有哪些用法?

    React Hooks 是 React 16.8 引入的一种新的特性,用于在函数组件中使用状态和其他 React 特性。下面列举了一些常见的 React Hooks 的用法: 1:useState:用于在函数组件中添加状态。: 2:useEffect:用于在函数组件中执行副作用操作(如订阅、数据获取等)。

    2024年02月08日
    浏览(37)
  • react中的useState和useImmer的用法

    react中文官网教程 在函数式组件中,可以使用 useState 这个 Hook 来定义和管理组件的状态。 useState 接受一个初始状态作为参数,并返回一个包含 state 和更新 state 的方法的数组。 下面是一个例子,展示了如何在函数式组件中定义自己的 state: 在上面的例子中,我们使用 useStat

    2024年02月07日
    浏览(42)
  • React 新版官方文档 (一) useReducer 用法详解

    useReducer 是一个可以让你向组件中添加 reducer 的 Hook 基本用法 比 useState 多了一个处理函数,该函数可以根据不同的分发状态来对应的改变状态 注意:state 不可修改 不能这样写, reducer 函数应当返回一个新对象 不要重新执行初始函数 第一种写法会导致每次渲染时候都调用

    2024年02月13日
    浏览(37)
  • JavaScript /react 中new Map的用法

    size属性 : size属性返回Map结构的成员总数。 set(key, value) : set方法设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键。 get(key) get方法读取key对应的键值,如果找不到key,返回undefined。 has(key) has方法返回一个布尔值,表示某个键

    2024年03月15日
    浏览(55)
  • react状态管理工具reduxjs/toolkit用法

    安装 npm install @reduxjs/toolkit 1.创建一个名为 counterSlice.js 的文件,用于处理计数器模块的状态: 2.创建一个名为 userSlice.js 的文件,用于处理用户信息模块的状态: 3.创建一个Redux store并将这些模块整合起来。创建一个名为 store.js 的文件: 4.在你的应用程序的入口处,将store与

    2024年02月15日
    浏览(39)
  • react中refs的作用是什么?有几种用法?

    在 React 中,ref 是用来获取组件或 DOM 元素的引用的一种方式。ref 可以在组件挂载后被访问,并且允许您从组件中访问底层的 DOM 元素或组件实例。 ref 有两种用法:字符串 ref 和回调函数 ref。 字符串 ref(string refs)是一种早期的使用 ref 的方式。它通过设置 ref 属性为一个字

    2024年01月20日
    浏览(41)
  • 【flink番外篇】6、flink的WaterMark(介绍、基本使用、kafka的水印以及超出最大允许延迟数据的处理)介绍及示例 - 完整版

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月02日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包