Javascript ReactJs-onClick事件中的奇怪错误
我想得到一个输入值,但似乎有什么问题,我无法解决Javascript ReactJs-onClick事件中的奇怪错误,javascript,reactjs,onclick,onclicklistener,Javascript,Reactjs,Onclick,Onclicklistener,我想得到一个输入值,但似乎有什么问题,我无法解决 import React, { Component } from 'react'; ... this.state = { json:JSON.parse(props.data), objet: '', id: '', click: function(click){ var a = document.getElementById("click").value;
import React, { Component } from 'react';
...
this.state = {
json:JSON.parse(props.data),
objet: '',
id: '',
click: function(click){
var a = document.getElementById("click").value;
alert(a);
a = null;
}
};
...
{this.state.json[1].map(i => (
...
<input onClick={this.state.click} value={i.id} id="click" ></input>
...
))}
import React,{Component}来自'React';
...
此.state={
json:json.parse(props.data),
对象:“”,
id:“”,
单击:功能(单击){
var a=document.getElementById(“单击”).value;
警报(a);
a=零;
}
};
...
{this.state.json[1].map(i=>(
...
...
))}
在浏览器中
我看到:
问题是,当我单击它通常显示2的两个输入中的一个时。
我看不出它为什么不起作用。请帮我解决我卡住了。您至少有两个不同的html元素具有相同的id(“单击”)。 因此,
document.getElementById(“单击”)
可能会返回您不期望的元素。
要解决此问题,请尝试更改
id={“click-”+i}
上的id=“click”
,并更新相应的onClick函数。您可以共享最小的工作代码吗?我说不清楚问题出在哪里。我从组件状态下的onClick函数中猜到了。非常感谢兄弟花了这么多时间,希望我解决了。是的,你完全正确,我没有看到id重复。谢天谢地,我用一种奇怪的方式解决了这个问题:我把函数改成了:`click:function(id){alert(id);}`并且这个函数的输入:this.state.click(i.id)}value={i.id}id=“click”>
hopping它在未来不会引发任何问题。你应该尝试使用返回另一个函数的函数,因为我不确定您列出的代码应该如何工作。试试这个:click:id=>()=>alert(id)
你是对的,我的语法出现了错误,解决方法正如你所说的click:(id)=>{}