reactjs - 重用有状态的反应组件
问题描述
我是 React 新手,想要一些建议。
问题本质上如下
我有许多打开模式的组件按钮,在这个模式中,我们有更多的按钮来提供选择。
主屏幕按钮(组件)
<Button value="First"></button>
<Button value="Second"></button>
<Button value="Third"></button>.....
模态的。
<button value="Donald"></button>
<button value="Thomas"></button>
<button value="Evie"></button>.....
因此,例如,主屏幕按钮将具有以下功能,它将传递给模态按钮的 onClick 属性。
selectPerson(e) {
setState({ selection : e.target.value})
}
所以通过选择“First”,我们选择一个人,关闭modal,将选中的人与Buttons状态绑定,然后重复第二个,以此类推。
本质上,这些打开 modal 的 Button 具有相同的核心功能(状态和道具)。即我可以有一个模板组件并重用它,但我希望每个组件都有独立的状态和道具。
所以我可以实现我所需要的,但我已经将每个主屏幕按钮编写为一个独立的组件,也就是说我已经编写了很多相同的代码。如果我尝试重用 SAME 组件,则会将它们视为相同的组件,并且选择一个人会更改所有按钮的状态。
无论如何要避免为每个(我有二十个)重写相同的代码。我才刚刚开始(显然)并且对一些更高级的概念不太熟悉。如果有人有任何建议或进一步的问题,那就太好了。我没有提供代码,因为代码可以工作,它只是非常庞大
解决方案
是的,当然,定义按钮组件并在其道具中传递某些元素。然后,您可以将 setState 设置为这些传下来的道具元素等。
因此,定义一个按钮组件,其各种状态由您传递的道具定义。然后你有一个可变模板 Button 组件。
当您渲染这些时,您只需定义它的道具。
<Button prop = "First" prop2 = "EXAMPLE"..../>
<Button prop = "Second" prop2 = "EXAMPLE2"..../>
<Button prop = "Third" prop2 = "EXAMPLE3"..../>
然后在 Button 组件内部使用类似的东西
this.state { property1 : this.props.prop, property2 : this.props.prop2 ...}
希望这可以帮助!我最近一直在做类似的事情
推荐阅读
- java - Selenium:每当有新聊天可用时,如何单击聊天页面中的元素
- eof - 嗨,我收到 EOF 错误,我该如何纠正?
- r - 在箱线图中指定点符号的plotly问题
- scala - Scala 转换为泛型类型
- mysql - 如何在 MySql docker 镜像中安装 sudo 和 nano 命令
- reactjs - 在 ReactJs 中将数据从状态发送到组件
- c++ - MFC C++ 通过 WM_DEVICECHANGE 通知区分两个设备
- bdd - 如果满足特定条件,有没有办法在空手道中多次运行特定场景?
- css - .ag-cell 菜单背景颜色(Angular)
- python - 如何在 pyspark 中创建多个滞后