如何重写此 Textarea 组件以重新组合?

Posted

技术标签:

【中文标题】如何重写此 Textarea 组件以重新组合?【英文标题】:How to rewrite this Textarea Component to recompose? 【发布时间】:2019-08-22 02:56:18 【问题描述】:

我有那个 React 组件,我需要重写它来重构。我不知道如何正确地做到这一点。你能帮帮我吗?

import React,  Component  from "react";
import autosize from "autosize";

class Textarea extends Component 

  componentDidMount() 
    this.textarea.focus();
    autosize(this.textarea);
  

  render() 
    return (
      <textarea
        ref=c => (this.textarea = c)
        placeholder='Tell us your story...'
      />
    );
  


export default Textarea

【问题讨论】:

正如 recompose repo 中提到的,你应该考虑使用 React 钩子而不是 "Hooks solves all the problems I attempted to address with Recompose three years ago, and more on top of that" 【参考方案1】:

在我看来,使用 recompose 来重构需要访问 refs 的组件是不值得的。您需要访问组件中的 this 上下文并重新组合只会使这更加复杂。 (你可以尝试 withLifecycle 但我认为你会失去你需要的上下文)

您可以使用 withProps 来提供占位符文本,但这是我建议的唯一用途。

【讨论】:

以上是关于如何重写此 Textarea 组件以重新组合?的主要内容,如果未能解决你的问题,请参考以下文章

如何重写 UIDatePicker 组件?

flex 自定义组件

将 REACT 组件渲染为 HTML 字符串以复制或添加到 textarea

显示 React 中写入字符数的 Textarea 组件仅在重新加载后更新值

您如何重写/重新编码网站以使其具有可扩展性? [关闭]

使用jquery组合文本?