reactjs - 轻触按钮即可输出组件 ReactJS
问题描述
我有 2 个按钮,当我单击其中一个时,组件将显示在 div 信息中。如何使它无论我们有多少按钮(假设我们有 50 个按钮)和 50 个不同的组件都显示出来?它应该是通用的。
import React, { Component } from 'react';
import Donald from '/.Donald';
import John from '/.John';
class Names extends Component {
state = {
array:[
{id:1,name:<Donald/>},
{id:2,name:<John/>},
]
};
showComponent = (id,name) => {
return this.state.array.map(() =>
<button key={id}>{name}</button>
)
};
render() {
return(
<div>
<div className="info">{this.name}}</div>
<div>
<button onClick={ () => this.showComponent(1) }>My name Donald</button>
<button onClick={ () => this.showComponent(2)}>My name John</button>
</div>
</div>
)
}
}
export default Names;
解决方案
我认为您误解了组件的用途。你真的不应该在一个页面上有 50 个不同的组件。
与其为 Donald 和 John 提供一个组件,不如你有一个<Person>
组件,并通过它的 props 传递有关个人的相关数据。
我知道这实际上可能不是你真正的用例,但通常会有一个更合理的解决方案,然后有这么多不同的组件。
推荐阅读
- java - 外观和感觉在 JDialog 上发生变化
- angular - chunk {main} main.js, main.js.map (main) 2.1 kB [initial] [rendered] 无法读取角度未定义的属性“map”
- javascript - 如何将 Javascript 变量用于表单操作标记?
- autodesk-forge - 如何更改多张图纸上的图纸?
- assembly - 在 void 函数中的空 return 语句后 %rax 会发生什么?
- sql-server - 使用 MSSQL 工具 sqlcmd,是否可以设置行分隔符?
- python - python中的字符串操作以转换“大写锁定”旁边的单词的大小写
- azure - 我可以将管理 azure api 用于 Azure APIM 分析吗
- google-chrome - 以当前状态抓取当前页面
- html - 使用 Tab 键聚焦在 FireFox 中不起作用