当前位置: 首页 > 知识库问答 >
问题:

React 函数可以更改为类组件吗?

游皓
2023-03-14

请在以下链接中查看吉列尔梅·托蒂的答案。

函数值如何显示在 HTML 标记中,并返回来自 addEventListerner 单击的值?

如果我能使用“const Keys”作为react组件,即:“类Keys扩展React.Component”。

 const Keys = ({ calcKeys, handleClick }) => (
    <div className="display-keys">
      {calcKeys.map(item => (
           <button onClick={() => handleClick(item.key)}>{item.key}</button>
       ))}
    </div>
)

共有2个答案

松亦
2023-03-14

是的。你当然可以重写类组件。但是趋势是将类组件重写为功能性的。

可以作为类组件完成的工作也可以通过函数类实现。功能组件还具有使用挂钩的优势。

看一下钩子

徐景明
2023-03-14

您可以,您需要做的就是在渲染方法中引用组件的 props:

class Keys extends React.Component {
  render() {
    const { calcKeys, handleClick } = this.props;
    return (
      <div className="display-keys">
        {calcKeys.map(item => (
             <button onClick={() => handleClick(item.key)}>{item.key}</button>
         ))}
      </div>
    );
  }
}

但是这样做有点奇怪——它会使代码变得更长,而且反过来建议尽可能在新代码中使用功能组件。

 类似资料:
  • 我有以下react功能组件来帮助支持react路由器所需的身份验证路由。 我需要将其从功能组件转换为类组件,以便利用React.component的componentDidMount方法。不幸的是,我很难弄清楚如何迁移它。如果我照原样做,我需要复制组件和…rest参数,但我不知道怎么做。我想我可以用这个.props.Component获得组件参数,但我不确定如何拉…rest。我是JSX和ES6的新

  • 我有一个非常简单的功能组件,它从localStorage获取日期并显示它。我有两个按钮来添加或删除日期后的周数,我希望显示新的日期。但是,该组件不会被渲染。 此组件的预期行为是获取时间戳,然后显示该时间戳的月份和年份。加载时,它正确地显示了2021年1月,但是当我在onLefthtml上单击几次时,它并没有呈现组件,尽管我期望它显示2021年12月。计算是正确的,我想我在这里丢失了功能组件渲染的概

  • 问题内容: 我在mongodb中有一个字符串字段。,我想将它们全部转换成数组。 我知道我可以遍历所有文档,获取字段,然后更新,但是我想知道是否有更清洁的方法。 谢谢。 问题答案: 您可以在map / reduce的Reduce函数中进行此操作,以将所有处理保留在mongodb中。本质上,您将使用map / reduce将结果放入新集合中,然后可以将其复制回旧集合(或删除旧集合并重命名新集合)。这具

  • 我是ES6新手。在编写React组件的不同方法上有点困惑。我从“react.createClass”开始,然后使用ES6类语法移到“extends react.component”。

  • 问题内容: 我只看到了在类定义中设置方法的示例。是否可以在其定义中或定义它们后更改for函数? 我尝试没有成功… 问题答案: 是的,如果您愿意放弃该功能实际上是一个功能。 首先,为我们的新类型定义一个类: 添加装饰器功能: 现在我们可以定义repr和函数了: 现在生产

  • 开始与React合作后。在js中,似乎是静态的(从父组件传入),而则根据事件进行更改。但是,我注意到文档中提到了,其中特别包括以下示例: 这似乎意味着,根据与。我错过了什么?道具是如何变化的,还是我弄错了它的名称?