![](/img/trans.png)
[英]How to create reusable dropdown component using material ui or mui in react?
[英]how to loop a reusable component using react
我正在使用 React,我遇到了一件事,那就是遍历组件
我的疑惑
我的疑问是我是否应该在调用它的地方循环输入组件,如下所示
{
inputData.map((li,ind)=>{
return(
<InputComp
key={ind}
type={li.type}
name={li.name}
id={li.id}
className={li.className}
/>
)
})}
或者我应该将数据作为道具传递并循环 inout 字段,如下所示
<InputComp data={data}/> // calling the component
{data.map((li,ind)=>{ // inside component looping
<input
key={ind}
type={li.type}
name={li.name}
className={li.className}
/>
})}
我有点困惑哪个最好,我的要求可以有多种类型,一种是像上面那样创建一个普通输入字段,另一种可以是创建动态输入字段我可以点击一个按钮,我必须添加一个新行和一个删除该行的按钮(行表示输入字段)
所以我写这篇文章是为了更好地理解代码,如果还有一个创建输入组件的选项,我愿意使用该代码。
我会选择第一种方法,原因如下:
还要提醒你,如果你有.map()
元素,你应该给它添加key
属性。
作为后续评论:
因为您基本上有一个额外的组件,所以它可能包含一个错误。 这不是疯狂的区别,但值得一提。 大多数情况下,它会归结为更好地控制它和该组件的灵活性,因为如果你对数据中的某些东西有条件,你可以在那个map
中拥有它,而不是将它放入<InputComp/>
并降低它的灵活性.
这方面的例子是:
// This is only mockup
data.map((item) => {
if(item.name === "dog"){
return <Input .../>
}
}
意味着如果你传递数据你会做:
// This is only mockup
const Input = (props) => {
if(props.data.name){
return <input />
}
return <>
}
但是,当您不想在狗身上使用它时,您打算怎么办? 制作另一个组件? 传递控制参数? 重新映射数据? 那时你可以输入 map。 它会无缘无故地冒泡代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.