获取以下元素中clicked元素的值:React

时间:2018-06-23 19:55:59

标签: reactjs

如何在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>
        );
    }
}

3 个答案:

答案 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>