Я думаю, вы совершенно не понимаете, как передать itemId
в handleItem
, тогда вы думаете, что это значение должно быть взято из e.target.value
.
Но для вашего случая вам просто нужночтобы передать его дескриптору, как я, и он работает как ожидалось
class App extends React.Component {
constructor() {
super();
this.state = {
item: ""
};
}
handleItem = item => {
this.setState({ item }, () => {
console.log("item > ", this.state.item);
});
};
renderItems = () => {
return ["item1", "item2", "item3"].map(item => (
<Menu.Item key={item} value={item} onClick={() => this.handleItem(item)}>
<a>{item}</a>
</Menu.Item>
));
};
render() {
return <Menu>{this.renderItems()}</Menu>;
}
}
export default App;
Примечание: чтобы console.log
проверил состояние, мне нужно написать его внутри функции обратного вызова setState
, потому чтоsetState
работает асинхронно.