如何在react中获取被点击元素的值。 event.currentTarget.value在反应16中显示“未定义”。有人知道这是什么招吗? BTM是实例的代码:
class Test extends React.Component{
constructor(){
super();
}
changeDimension(e){
alert(e.currentTarget.value);
}
render(){
return(
<div style={{height : this.state.height}} >
<h1 onClick={this.changeDimension.bind(this)}> Click Me</h1>
</div>
);
}
}
答案 0 :(得分:1)
未设置value
属性:
<h1 onClick={this.changeDimension.bind(this)}> Click Me</h1>
如果您需要“点击我”文本,请使用:
alert(e.currentTarget.innerHTML);
答案 1 :(得分:0)
在这种情况下,我通常直接将值作为函数的参数传递,尤其是当我有多个由循环生成的按钮时,例如:
{this.state.dimensions.map(dimension => <h1 onClick={() => this.changeDimension(dimension)}>{dimension.value}</h1>)}
答案 2 :(得分:0)
如果您想要除“点击我”以外的其他提示,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
int compute(char c, char str[])
{
int r=0;
long len=strlen(str);
int i;
for (i=0; i<len; i++)
{
if (str[i]==c)
{
r++;
}
}
return r;
}
int main()
{
char text[]="C language is a very powerful language that allows programmers to fully control their computers";
int i;
long len=strlen(text);
for (i=0; i<len; i++)
{
char c=text[i];
c= tolower(c);
text[i]=c;
}
bool seen[256];
for (i=0; i<256; i++)
{
seen[i]=false;
}
for (i=0; i<len; i++)
{
char c= text[i];
if (seen[c]==true)
continue;
seen[c]=true;
int ocs=compute(c, text);
if (ocs>0)
{
printf("%c : %d -:",c,ocs);
}
return 0;
}
}
然后:
<h1 onClick={this.changeDimension.bind(this)} data-value="something other"> Click Me</h1>