首页 男生 其他 深入浅出React和Redux

6.1.3 高阶组件的显示名

深入浅出React和Redux 程墨 1140 2021-04-06 02:29

  您可以在百度里搜索“深入浅出React和Redux 艾草文学(www.321553.xyz)”查找最新章节!

  

  6.1.3 高阶组件的显示名

  每个高阶组件都会产生一个新的组件,使用这个新组件就丢失掉了参数组件的“显示名”,为了方便开发和维护,往往需要给高阶组件重新定义一个“显示名”,不然,在debug和日志中看到的组件名就会莫名其妙。增加“显示名”的方式就是给高阶组件类的displayName赋上一个字符串类型的值。

  以react-redux的connect为例,我们希望高阶组件的名字包含Connect,同时要包含参数组件WrappedComponent的名字,所以我们对connect高阶组件做如下修改:

  function getDisplayName(WrappedComponent) {

  return WrappedComponent.displayName ||

  WrappedComponent.name ||

  'Component';

  }

  HOCComponent.displayName=`Connect(${getDisplayName(WrappedComponent)})`;

  上面给displayName赋值使用了ES6的模板字符串语法,注意是用反撇号`代替普通字符串的单引号或者双引号。

  增加displayName的定义之后,在React Perf等工具中看到的组件类名就更有意义。例如,当我们用connect返回的结果去包裹一个叫DemoComponent的组件时,得到的新组建的displayName就是字符串Connect(DemoComponent)。 深入浅出React和Redux

目录
设置
手机
书架
书页
评论