Это фиксированный код
function App() {
const [activeItem, setActiveItem] = useState("home");
const setActiveItemOnClick = (e, { name }) => {
console.log(name);
setActiveItem(name);
};
return (
<div>
<MenuExamplePointing />
<Menu pointing>
<Menu.Item
name="home"
active={activeItem === "home"}
onClick={setActiveItemOnClick}
/>
<Menu.Item
name="messages"
active={activeItem === "messages"}
onClick={setActiveItemOnClick}
/>
<Menu.Item
name="friends"
active={activeItem === "friends"}
onClick={setActiveItemOnClick}
/>
</Menu>
<Segment>
<img src="https://react.semantic-ui.com/images/wireframe/paragraph.png" />
</Segment>
</div>
);
}
В вашем компоненте класса вы деструктурируете второй параметр handleItemClick
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
^
Вы можете сделать то же самое для вашего обработчика в вашем функциональном компоненте
const setActiveItemOnClick = (e, { name }) => {
console.log(name);
setActiveItem(name);
};
Если вы посмотрите на DOM, реквизит name
не будет передан вперед ![itemList DoM](https://i.stack.imgur.com/Yy16J.png)
, поэтому он не доступен.target Если вы посмотрите на docs компонента Menu.item, вы увидите, что исходные реквизиты, отправленные в компонент Menu.item, доступны из data
пропуска onClickфункция