当前位置: 首页 > 编程笔记 >

在React.js中转发ref

霍修筠
2023-03-14
本文向大家介绍在React.js中转发ref,包括了在React.js中转发ref的使用技巧和注意事项,需要的朋友参考一下

将ref传递到子组件称为转发ref。React提供了createRef函数来为元素创建一个ref。

forwardRef是将ref传递给子组件的函数。

示例

// ExampleRef.js
const ExampleTextInput = React.forwardRef((props, ref) => (
   <input type="text" placeholder="Welcome" ref={ref} />
));
const exampleInputRef = React.createRef();
class NewTextInput extends React.Component {
   handleFormSubmit = e => {
      e.preventDefault();
      console.log(“Entered value: ”+exampleInputRef.current.value);
   };
   render() {
      return (
         <div>
            <form onSubmit={e => this.handleFormSubmit(e)}>
               <NewTextInput ref={exampleInputRef} />
               <button>Submit</button>
            </form>
         </div>
      );
   }
}

顾名思义,引用转发只是接收引用并将其传递给子组件。

ExampleTextInput内部的子组件输入通过React.forwardRef函数接收引用。

创建forwardref的步骤

    html" target="_blank">list-paddingleft-2">
  • 用于创建引用并将其分配给变量元素的React.createRef

  • 使用jsx属性将上面创建的引用附加到组件

  • 使用ref的组件具有forwardref函数,该函数接受props和ref作为参数。

  • ref参数传递给子组件

  • 子组件使用ref作为jsx属性

  • 通过将其指定为JSX属性,我们将此ref参数向下转发到<button ref = {ref}>。

  • 连接ref后,ref.current将指向<button> DOM节点。

将forwardRef与高阶组件一起使用-

示例

const InputHoc = ProvidedComponent => {
   const forwardRef = (props, ref) => {
      const onValueInput = () => console.log(“ref value: ”+ref.current.value);
      return < ProvidedComponent
      forwardedRef={ref}
      onChange={onValueInput}
      {...props} />;
   };
   return React.forwardRef(forwardRef);
};
 类似资料:
  • 本文向大家介绍在React.js中发出HTTP请求,包括了在React.js中发出HTTP请求的使用技巧和注意事项,需要的朋友参考一下 在典型的Web应用程序中,客户端通过浏览器发出http请求,而服务器在响应中发送带有数据的html页面。 但是在单页应用程序(SPA)中,我们只有一页,每当客户端向服务器发出http请求时,它通常都会以json / xml格式的数据进行响应。 为了发出http请求

  • 问题内容: Parent(在我的示例中)组件通过Child()组件呈现一个数组。父级决定更改数组中的属性,React触发子级重新渲染的方式是什么? 调整数据后,我想出的只是在Parent中。这是触发更新的hack还是React方法? JS小提琴:https: //jsfiddle.net/69z2wepo/7601/ 问题答案: 这里的问题是您要在中存储状态,而不是。由于此组件是mutating

  • 封装了一个axios,想要在token过期的时候做返回登录页的统一处理,代码如下: if (response.data.errno === 1) { } 报错了,如下: 使用window.location.href可以成功,除次之外,react还有别的跳转方法吗 这是当前的文件内容

  • 问题内容: 在提交表单时,我正在尝试取代默认的发布行为。 显然,在React中,onSubmit是表单支持的事件。但是,当我尝试以下代码时: 该方法已运行,但是此后仍执行默认的发布行为。 您可以在我的jsfiddle中进行测试。 我的问题:如何防止默认的发布行为? 问题答案: 在您的函数中,传递事件并使用。

  • 本文向大家介绍在React.js中样式化,包括了在React.js中样式化的使用技巧和注意事项,需要的朋友参考一下 React.js的样式可以通过以下两种方式完成 CSS样式表 内联样式 首先来看CSS样式表 我们有App.js文件,如下所示- 在App.js文件中,我们导入了一个包含CSS类myColoredText的App.css文件 请注意 我们在属性className的双引号中使用了CSS

  • 本文向大家介绍在React.js中使用useContext,包括了在React.js中使用useContext的使用技巧和注意事项,需要的朋友参考一下 useContext钩子允许在不使用redux的情况下将数据传递给子元素。 useContext是react中的一个命名导出,因此我们可以导入如下的功能组件- 如果我们只需要将数据传递给child元素,则它是Redux的简单替代方案。 创建上下文的