React 源码阅读-5_036

React 源码阅读-5

源码


import {REACT_FORWARD_REF_TYPE, REACT_MEMO_TYPE} from 'shared/ReactSymbols';

import warningWithoutStack from 'shared/warningWithoutStack';

export default function forwardRef(
  render: (props: Props, ref: React$Ref) => React$Node,
) {

// ... 暂时忽略 也看不太懂
//应该这部分代码是为了在DevTools中显示一个自定义名称 不太确定

  return {
    $$typeof: REACT_FORWARD_REF_TYPE,
    render,
  };
}

React.forwardRef 接受一个渲染函数,该函数接收 propsref 参数并返回一个 React 节点

为了在高阶组件中转发 refs

forwardRef例子

const FancyButton = React.forwardRef((props, ref) => (
  
));

// 你可以直接获取 DOM button 的 ref:
const ref = React.createRef();
Click me!;

1.我们通过调用 React.createRef 创建了一个 React ref 并将其赋值给 ref 变量。

2.我们通过指定 refJSX 属性,将其向下传递给

3.React 传递 reffowardRef 内函数 (props, ref) => ...,作为其第二个参数。

4.我们向下转发该 ref 参数到

你可能感兴趣的:(前端,html,javascript,react.js)