Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值?_Javascript_Reactjs_Jsx - Fatal编程技术网

Javascript 有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值?

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

我正在开发react应用程序。我有几个高级搜索的输入,它们使用相同的函数来确定onclick操作。有没有一种方法可以将输入标记的id作为onclick函数参数传递,而不在JSX中实际写入id值

所以我想让在JSX的输入代码中更快地编写代码。通过简单的复制粘贴功能参数的所有方式

          <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 name

    inputAction(e)}/>``或者您可以将此元素作为自己的组件,获取包含对象的数据的属性。这样子组件就可以访问它自己的
    id
    ,并可以根据需要发出事件,包括将此
    id
    传递给父组件。我建议使用
    name
    属性并将事件传递给函数,这将使选中复选框变得容易或更不容易。@akhilarvind spot on。但是我只是想演示一下,您可以使用
    event.target.id
    @FaizHameed检查这个代码沙盒来传递id