reactjs - 如何在 react 中访问按钮类型 mui ListItem 的名称

标签 reactjs material-ui

我创建了一个material-ui列表,其中每个ListItem都是一个按钮,但是当我尝试访问按钮的name属性时,它给出了未定义。

import React from 'react';
import LoginFront from './login/loginFront';
import {BrowserRouter, Route} from 'react-router-dom';
import {List, ListItem, ListItemText} from '@material-ui/core';

class App extends React.Component {
  render(){
    return(
      <List component='nav'>
        <ListItem button name='bName' onClick={event => console.log(event.target.name)} />
        <ListItemText primary='item1' />
      </List>
    )
  }
}
export default App;

console.log(event.target.name) 给出 undefined

最佳答案

onClick={event => console.log(event.target.getAttribute('name'))}

使用getAttribute方法获取name的值

您在页面上看到的 html 只是 DOM 的渲染表示。 DOM 树上的节点属性与 html 元素上的属性不匹配。

在创建标准时,他们不希望 DOM 元素的接口(interface)与属性相同,因为您可能会添加与现有属性或方法冲突的属性,但这只是猜测。

编辑

onClick={event => console.log(event.currentTarget.getAttribute('name'))}

参见here了解 targetcurrentTarget 之间的差异。

The thing is when you define onClick on the topMost parent, you need to use e.currentTarget.id instead of e.target.id since e.target will give you the element on which you clicked rather then the parent on which onClick listener is defined

关于reactjs - 如何在 react 中访问按钮类型 mui ListItem 的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54304788/

相关文章:

javascript - 组件渲染两次

javascript - 如果新旧值相同,react setState 是否执行?

javascript - 移动设备悬停状态下元素的 onClick 事件仍然适用

reactjs - 在 createTheme() 中添加自定义主题变量

reactjs - 用inkscape创建图标,用material ui SvgIcon导入

reactjs - 如何自定义样式 Material UI v5

javascript - 比较对象 Prop 级别与可选 Prop

javascript - 在不使用 testid 的情况下测试 Material ui Select 组件

css - Material UI 中的相同高度卡片

javascript - 如何将带有 django 的 react.js webpack 部署到 heroku?