reactjs - React 函数可以改成类组件吗
问题描述
请在 Guilherme Toti 的以下链接中查看答案。
函数值如何显示在 HTML 标记中,并带有 addEventListerner click 的返回值?
是否有可能,如果我可以使用“const Keys”作为反应组件,即:“class Keys extends React.Component”。
const Keys = ({ calcKeys, handleClick }) => (
<div className="display-keys">
{calcKeys.map(item => (
<button onClick={() => handleClick(item.key)}>{item.key}</button>
))}
</div>
)
解决方案
你可以,你需要做的就是在一个render
方法中引用组件的 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 自己建议尽可能在新代码中尝试使用函数式组件。
推荐阅读
- python - 在不相等的列表上使用 zip_longest 但重复最后一个条目而不是返回 None
- css - Mat-autocomplete 和 mat-select 与我的标题重叠
- android - 我是否需要 AsyncTask 来查询我的 Android 房间数据库中的一行?
- amazon-web-services - lambda@edge 中的速度修复或替代方案
- bash - bash -x /var/lib/cloud/instance/user-data.txt 运行但来自 terraform 的用户数据给出错误
- java - 无法运行具有特定依赖关系的 Java
- wpf - Prism 的 Regions 可以与 MUI 的 IContent 一起使用吗?
- mysql - 如何从分组MYSQL中查询出随机公司名称
- django - 通过ajax调用一次保存一行
- java - 杰克逊的“轻松”字段名称