reactjs - 如何使传递给子组件的 onClick 事件在 React 中工作
问题描述
我有一个子组件:
const MenuItem = ({
children,
className,
onClick
}) => (
<li
className={classNames(
styles.menuItem,
styles.hoverable,
className
)}
onClick={onClick}
>
{children}
</li>
);
MenuItem.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
onClick: PropTypes.func
};
我有一个父亲组件:
<MenuBarMenu
className={classNames(styles.menuBarMenu)}
open={this.state.historyDropdownStatus}
place={this.props.isRtl ? 'left' : 'right'}
>
{this.props.historyList.map(item =>
(
<MenuItem
key={item.id}
// eslint-disable-next-line react/jsx-no-bind
onClick={() => {
this.handleClickHistoryItem(item.id);
}}
>
{item.name}
</MenuItem>
))}
</MenuBarMenu>
我也定义handleClickHistoryItem
并绑定到这个
constructor (props) {
super(props);
this.state = {
historyDropdownStatus: false
};
bindAll(this, [
'handleClickHistoryItem'
]);
}
handleClickHistoryItem (id) {
console.log('a');
}
其实类似这段代码的代码都可以触发,但是只有这一项失败了。我根据stackoverflow上的答案尝试了很多方法,但仍然没有奏效。
解决方案
推荐阅读
- javascript - 在从边框到边框的矩形之间画线
- c# - 将 ViewModel 传递到身份页面中的视图中
- android - 如何从我的调查中获得答案?(科特林应用)
- python - Graphviz - 如何根据文件中写入的文本使有向图中节点中的文本缩进?
- kubernetes - 如何让 SSH 在 Kubernetes 上运行?
- dpdk - DPDK是否支持slave启动一个新线程?
- go - TIMESCALEDB 架构问题
- node.js - NodeJS:无法扩展 Promise 对象:没有基本构造函数具有指定数量的类型参数
- rust - 尝试使用带有 glutin 事件循环关闭的 rodio 音频板条箱时出现问题
- android - SpannableStringBuilder 附加一个 SpannableString 对象不显示跨度?