碎片-2025-02-14 15时00分 状态没变更?记录一次没阻止冒泡导致的bug
Updated:
摘要(由llm生成)
基础不牢,地动山摇
举个例子:

- 预期:删除了当前激活的item之后,list中第一个item被激活。
- 错误的现象:删除了当前激活的item之后,无任何item被激活。
由于我点击删除按钮的时候,没有阻止冒泡,而删除的按钮的父组件是item,它们都有绑定click事件。
所以调用的步骤就是:
- 首先调用删除item的回调,并且由于我的激活index就是目标要删除的index,所以是期望设置activeIndex = 2
- 但是由于没有阻止冒泡,所以在设置了activeIndex = 2之后,又去调用了activeIndex = 1
- 最后导致看起来状态没有发生变化这样的bug

最后的解决方法是:在删除item的回调中,阻止冒泡。
onClick = (e)=>{ e.stopPropagation() deleteItemByIndex(index)}
感谢阅读到这里,期待收到更多的反馈
欢迎关注公众号
kazoottt
