javascript - 在链接上 react onClick 事件

标签 javascript reactjs

我有这个奇怪的东西我有这个简单的组件

import React, {Component} from 'react';
const Logo = ({onClick}) => {
return (

    <a name="home" onClick={onClick} className="logo">

        <span className="logo-mini"></span>



    </a>

);
};


export default Logo;

onClick 事件应该获取链接上的点击事件以获取属性名称,但当我控制台时,我得到的是未定义的。记录 event.target输出是 <span class="logo-lg"></span>

在根组件中我的渲染方法调用 <Logo onClick={this.handleClick}/> handleClick 方法

    handleClick(){
    let to = event.target.name;
    console.log(event.target);
    }

最佳答案

您可以通过将 parentElementgetAttribute() 方法链接起来来访问所需的属性。 在你的 handleClick 方法中试试这个

console.log(event.target.parentElement.getAttribute('name'));

更多信息在这里:
https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute https://developer.mozilla.org/en/docs/Web/API/Node/parentElement


或者,您可以使用:
console.log(event.target.getAttribute('name')); 但这需要您将 name 属性放在 span 元素上。

此外,如果要点被删除,这里有一个完整的工作代码:

class Header extends React.Component { 
  handleClick(event) {
    console.log(event.target.parentElement.getAttribute('name'));
  }
  render() {
    return (
      <Logo onClick={this.handleClick}/>
    );
  }
}

const Logo = ({onClick}) => {
  return (
    <a name="home" onClick={onClick} className="logo">
        <span className="logo-mini">Logo</span>
    </a>
  );
};

ReactDOM.render(<Header/>, document.getElementById('app'));

Codepen 链接:http://codepen.io/PiotrBerebecki/pen/LRRYRq

关于javascript - 在链接上 react onClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39559222/

相关文章:

javascript - 主干模型在本地缓存和获取

javascript - document.GetElementById 不适用于任何类型的浏览器

javascript - 如何编辑本地存储值 react ?

javascript - 如何将变量复制到剪贴板

javascript - 使用本地属性和文件位置将图像添加到灯光开关

javascript - Laravel和Flutter通知系统

javascript - React 服务器端渲染还是静态index.html?

javascript - 如何在 React 中获取当前状态?

javascript - React : Cannot update during an existing state transition (such as within `render` ). 渲染方法应该是 props 和 state 的纯函数

reactjs - Next.js 应用程序是 SPA 还是单页应用程序?