Reactjs - event.stopPropagation 不起作用

IT技术 javascript reactjs events
2021-05-20 22:17:04

我有一个Post基本上渲染卡片组件。如果帖子被点击,那么URL应该路由到'/expand/'.

现在我有另一个组件DeleteTemplate,它呈现一个按钮并单击它呈现一个Modal

现在,我DeleteTemplate在我的Post组件中使用了它

现在,单击DeleteTemplate按钮正在渲染模态。在模态中,如果我选择该Cancel选项,则URL将被路由到'/expand/'不应该发生的位置。

编辑 4jmrwwy004

1个回答

模态中按钮的点击事件正在冒泡到卡片上。您需要添加event.stopPropagation()onClick模态内这些按钮处理程序。

所以在你的DeleteTemplate渲染函数中:

<Button color="secondary" onClick={this.cancel}>
    CANCEL
</Button>

取消处理程序如下所示:

cancel(event) {
    event.stopPropagation();
    this.toggleModal();
}

工作示例:

编辑 xvw8y7l9ko