如何通过特定元素在反应中起作用

时间:2018-10-19 21:30:12

标签: reactjs

我刚刚开始自己​​学习React,所以我的代码可能真的很糟糕,但是请耐心等待。 我正在尝试重用我的代码的这一部分,这是一个计数器

<div>
    <button type="button" className="less"><img className="button" src={Minus} alt="" onClick={this.minusItem.bind(this)}/></button>
    <input type="text" name="" id="count" defaultValue="3"/>
    <button type="button" className="more"><img className="button" src={Plus} alt="" onClick={this.addItem.bind(this)}/></button> 
</div>

,我只是无法弄清楚我传回的“这个”是什么。我想传递回单击的元素并找到相应的输入元素,以便可以更新数字。 这是minusItem函数的代码

minusItem = (el) => {
    var c = //get the corresponding input element from el
    if (c.val() > 1) {
        c.val(c-1);
    }
}

我试图搜索答案,但是找不到任何地方,这是我第一次在这里发布,因此如果我不能清楚地解释事情或以正确的格式发布内容,请在此表示歉意

1 个答案:

答案 0 :(得分:1)

您在onClick处理程序上引用的this是React组件。通常,要引用dom元素,您可以使用refs:

https://reactjs.org/docs/refs-and-the-dom.html

另外,onClick处理程序将事件作为参数接收,您可以使用event.target

引用调用事件的dom元素。

clickHandler = (event) => {
  console.log(event.target); // dom element
}