Javascript 有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值?
我正在开发react应用程序。我有几个高级搜索的输入,它们使用相同的函数来确定onclick操作。有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值 所以我想让在JSX的输入代码中更快地编写代码。通过简单的复制粘贴功能参数的所有方式Javascript 有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值?,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,我正在开发react应用程序。我有几个高级搜索的输入,它们使用相同的函数来确定onclick操作。有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值 所以我想让在JSX的输入代码中更快地编写代码。通过简单的复制粘贴功能参数的所有方式 <label className="container"> <p>First name</p> <input
<label className="container">
<p>First name</p>
<input
id="check-firstname"
type="checkbox"
onClick={() => inputAction(id)} // it doesnt work i tried
// i would be happy if i can copy paste this same in 20 other places
/>
<span className="checkmark"></span>
</label>
</li>
名字
inputAction(id)}//我试过了,它不起作用
//我会很高兴,如果我可以复制粘贴在其他20个地方相同
/>
我知道这是传统的做法
<li className="search-list-off">
<label className="container">
<p>First name</p>
<input
id="check-firstname"
type="checkbox"
onClick={() => inputAction('check-firstname')} // i dont wanted to write this for each ids
/>
<span className="checkmark"></span>
</label>
</li>
名字
inputAction('check-firstname')}//我不想为每个ID写这个
/>
如果没有解决方案,你可以帮我建议最好的方法,这应该行得通
<li className="search-list-off">
<label className="container">
<p>First name</p>
<input
id="check-firstname"
type="checkbox"
onClick={(e) => inputAction(e.target.id)} // i dont wanted to write this for each ids
/>
<span className="checkmark"></span>
</label>
</li>
名字
inputAction(e.target.id)}//我不想为每个id写这个
/>
一个简单的方法就是将所有id
组成一个数组,并用.map
进行渲染。这样,您就不必复制粘贴所有JSX,并且您可以访问id值,以便在id
prop和onClick
propI中使用。我对reactjs不是很了解,但是从javascript中获取我的知识,像onClick={e=>inputation(e.target.id)}
工作吗。。。编辑:也许会help@Bravo是的,它可以工作````li className=“search list off”>First nameinputAction(e)}/>``或者您可以将此元素作为自己的组件,获取包含对象的数据的属性。这样子组件就可以访问它自己的id
,并可以根据需要发出事件,包括将此id
传递给父组件。我建议使用name
属性并将事件传递给函数,这将使选中复选框变得容易或更不容易。@akhilarvind spot on。但是我只是想演示一下,您可以使用event.target.id
@FaizHameed检查这个代码沙盒来传递id