Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是如何反应的元素';更新身高?_Javascript_Css_Reactjs - Fatal编程技术网

Javascript 这是如何反应的元素';更新身高?

Javascript 这是如何反应的元素';更新身高?,javascript,css,reactjs,Javascript,Css,Reactjs,因此,我看到它生成了一个div元素,其中“textarea textarea--ghost”(非ghost textarea)作为一个类。我看到以下代码片段: setFilledTextareaHeight() { if (this.mounted) { const element = this.ghost; this.setState({ height: element.clientHeight, }); } } 但这

因此,我看到它生成了一个div元素,其中“textarea textarea--ghost”(非ghost textarea)作为一个类。我看到以下代码片段:

setFilledTextareaHeight() {
    if (this.mounted) {
      const element = this.ghost;

      this.setState({
        height: element.clientHeight,
      });
    }
  }

但这似乎只更新了类为“.textarea”的实际textarea框的高度。类为“textarea textarea--ghost”的“ghost”元素的高度是如何更新的?关于生命周期有什么我不明白的吗

这里没有魔法。正如JSFIDLE提到的:
使用重影div测量高度。
因此未设置重影高度。高度由内容的高度隐式指定

该程序的工作原理如下:

  • 将重影文本区域的高度保留为空
  • 将ghost textarea的值设置为主textarea的值
  • 允许浏览器计算通过渲染使ghost textarea填充值的高度
  • 测量JS/React中的区域高度
  • 设置主文本区域的高度

  • 这个复杂的过程主要用于高度CSS转换,因为高度上的CSS转换不适用于
    100%旧高度到100%新高度
    ,因此必须为转换提供明确的像素单位。

    。正如JSFIDLE提到的:
    使用重影div测量高度。
    因此未设置重影高度。高度由内容的高度隐式指定

    该程序的工作原理如下:

  • 将重影文本区域的高度保留为空
  • 将ghost textarea的值设置为主textarea的值
  • 允许浏览器计算通过渲染使ghost textarea填充值的高度
  • 测量JS/React中的区域高度
  • 设置主文本区域的高度

  • 这个复杂的过程主要用于高度CSS转换,因为高度上的CSS转换不适用于
    100%旧高度到100%新高度
    ,因此必须为转换提供明确的像素单位

  • ghost div定义了一个ref-

    第67行:
    ref={(c)=>this.ghost=c}

  • ghost div在渲染期间会使用textarea的值进行更新

    第70行:
    {this.state.value}

    这会改变鬼魂的高度

  • 同时,在
    onKeyUp
    事件期间,
    setFilledTextareaHeight
    方法使用参考
    this.ghost
    ,它是ghost div的DOM元素,以获取ghost div的高度,并将其设置为
    height
    处于状态

  • 重新渲染和预渲染


  • 简而言之,ghost div根据在主文本区域中输入的值进行更改,然后将其高度应用于文本区域。

    情况如下

  • ghost div定义了一个ref-

    第67行:
    ref={(c)=>this.ghost=c}

  • ghost div在渲染期间会使用textarea的值进行更新

    第70行:
    {this.state.value}

    这会改变鬼魂的高度

  • 同时,在
    onKeyUp
    事件期间,
    setFilledTextareaHeight
    方法使用参考
    this.ghost
    ,它是ghost div的DOM元素,以获取ghost div的高度,并将其设置为
    height
    处于状态

  • 重新渲染和预渲染

  • 简而言之,ghost div根据在主文本区域中输入的值进行更改,然后其高度应用于文本区域