【发布时间】:2020-07-22 12:32:17
【问题描述】:
我计划制作一个按钮,在点击时更新state。按钮内部有一个img 和div。当我点击按钮时onClick 触发,但当我点击img 或div 时不会触发。任何人都知道如何解决这个问题,因为我希望用户单击按钮上的任意位置(包括img 和div)。
我的 jsx 代码是:
<div
className={
'flex flex-row flex-wrap justify-around border-2 rounded border-dashed'
}>
{categoryLeft.map((category) => (
<button
onClick={this.addCategory}
type='button'
value={category}
name={category}
className={
'flex bg-teal-600 my-2 mx-1 w-auto h-auto hover:bg-teal-400 text-white font-bold px-1 rounded'
}>
<div className={'self-center'} value={category}>
{category}
</div>
<img
className={'float-right ml-1 self-center w-5 h-5'}
value={category}
src={CloseImg}
/>
</button>
))}
</div>
</div>
我的方法是:
addCategory = (e) => {
console.log(e.target);
console.log(this.state.categoryLeft);
this.setState({
categoryUsed: [...this.state.categoryUsed, e.target.value],
categoryLeft: this.state.categoryLeft.filter(
(cat) => cat !== e.target.value
),
});
};
【问题讨论】:
-
根据 html5 规范,
div不允许作为button的子代。仅限phrasing content。
标签: javascript reactjs onclick dom-events