import React, { Component } from 'react'
import { Menu } from 'semantic-ui-react'
export default class MenuExampleVerticalPointing extends Component {
state = { activeItem: 'home' }
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
render() {
const { activeItem } = this.state
return (
<Menu pointing vertical>
<Menu.Item name='home' active={activeItem === 'home'} onClick={this.handleItemClick} />
<Menu.Item name='messages' active={activeItem === 'messages'} onClick={this.handleItemClick} />
<Menu.Item name='friends' active={activeItem === 'friends'} onClick={this.handleItemClick} />
</Menu>
)
}
}
这是Semantic UI代码的一部分。 https://react.semantic-ui.com/collections/menu#types-vertical-pointing
属性名称如何传递给处理程序?为什么有一个对象,即使没有对象传递给处理程序?
答案 0 :(得分:0)
如何将属性名称传递给处理程序?
解构是提取多个值的便捷方式 来自存储在(可能是嵌套的)对象和数组中的数据。有可能 用于接收数据的位置(例如。的左侧) 分配)。
name
这是您的活动e
的属性。当您点击Menu.Item
时,您会将事件传递给包含name
和active
属性(或属性)的方法。为什么有一个对象,即使没有对象传递给处理程序?
e
是合成事件。 React定义了这些合成事件
根据W3C规范,所以你不必担心
跨浏览器兼容性。单击Menu.Item
然后向指定节点触发事件处理程序。单击指定的元素时,总会发生Onclick事件。 链接:
答案 1 :(得分:0)
onClick
事件将从Menu.Item
触发。如果您检查Menu.Item
代码,则可以看到onClick
调用的函数this.props.onClick(event, {name : this.props.name})