- 此问题在此处已有答案**:
ReactJS, event.currentTarget doesn't have the same behavior as Vanilla Javascript(1个答案)
3小时前关门了。
我想在React中捕获单击按钮时的name属性。
我尝试了以下代码块:
export function TestButton(props){
function logName() {
console.log(this.name)
}
return(
<button name={props.name} onClick={event => logName(event.currentTarget.getAttribute("name"))} type='button'>{props.text}</button>
)
}
我的期望是这段代码将允许我创建一个在控制台日志中显示名称的按钮:
<TestButton name='helloWorld' text='Click Me'/>
相反,我得到了this is undefined
的警报。这是尽管我在检查元素时能够看到名称。
我也试过target
而不是currentTarget
,没有运气。我也试过event.currentTarget.name
,没有我想要的结果。
我错过了什么?
3条答案
按热度按时间6ljaweal1#
作为回应,我认为
this
是为类保留的,而您正在定义一个函数组件。在函数组件中,可比较的状态值将与useState()
一起存储。也就是说,我不确定我是否认为这里有必要这样做。因为这个按钮是从某个地方得到它的属性的,并且name
和text
的值在这个组件中没有改变。现在再深入一点,也许你想在任何呈现这个按钮的地方使用state,看起来像这样:
这些都是在您当前代码的基础上构建的,但现在我将以一种对我来说有意义的方式合并所有内容:
rsl1atfo2#
请尝试以下操作:
jecbmhm33#
试试这个