forwardRef使用中碰到的奇怪问题

问题描述:通过externals 或是 动态连接库 加载react,ref 会直接被透传

// App.js
import React, { forwardRef, useRef } from "react";
function logProps(WrappedComponent) {
  class LogProps extends React.Component {
    componentDidUpdate(prevProps) {
      console.log("old props:", prevProps);
      console.log("new props:", this.props);
    }
    render() {
      return ;
    }
  }
  return LogProps;
}
// 注意:这里是函数组件
function FancyButton(props, ref) {
  console.log(ref);
  return 
sssss
; } const MFancyButton = forwardRef((props) => { const MemodFancyButton = logProps(FancyButton); return ; }); export default function App() { const dsRef = useRef(); return ; }
  • 上述代码在项目针对reactreact-dom配置了externalsdll之后,不会报错
// webpack.config.js
externals: {
  "react": "React",
  "react-dom": "ReactDOM",
},

// index.html


  • 如果未设置externalsdll,则会报如下错误
    报错信息1

    报错信息2

你可能感兴趣的:(forwardRef使用中碰到的奇怪问题)