2 回答
TA贡献1804条经验 获得超3个赞
首先,您的 handleClick 在设置状态时会由于this. 所以我建议你要么在构造函数中绑定它,要么把它改成这样的箭头函数 -
handleItemClick = (e) => {}
现在,我已经在几个项目中使用了 Semantic-ui-react,并且点击事件的运行方式有点不同。根据文档 -
Called on click. When passed, the component will render as an `a`
tag by default instead of a `div`.
onClick(event: SyntheticEvent, data: object)
event
React's original SyntheticEvent.
data
All props.
所以改变你的 onClick 到onClick={handleItemClick}then
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
我希望这可以帮助你。
更新:您的最新错误是因为<a>链接中的标签。链接来自react-router就像一个标签,我们知道
<a href="1">
<a href="2"></a>
</a>
是无效的 HTML。您可以参考此问题了解更多信息Link 不能作为链接的后代出现。
要解决您的错误,只需删除标签内的标签即可。
更新: -
最新的错误是因为您在 handleItemClick 中传递名称
if (isHomeButton) {
return <Link href="/"><Menu.Item name={name} active={activeItem === name} onClick={handleItemClick}></Menu.Item></Link> //change the onClick here//
}
TA贡献1895条经验 获得超3个赞
你可以尝试在构造函数中绑定你的方法吗
class DesktopContainer extends Component {
constructor(props) {
super(props);
this.state = {};
this.handleItemClick = this.handleItemClick.bind(this);
}
// remaining code
}
希望能帮助到你
添加回答
举报