作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个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了解 target
和 currentTarget
之间的差异。
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/
我是一名优秀的程序员,十分优秀!