请教一个问题,怀疑是个bug

先说下应用场景:

1,我有一个listview,里面的项是prefab,在prefab中,根节点上有一个按钮,相当于点击这个prefab,就会触发一个事件
2,prefab的按钮事件是动态绑定的
3,使用了节点池,默认初始化了10个对象在池里,当往listview中添加的时候,触发prefab的reuse事件,在这里,我把点击prefab按钮的事件通过参数传递进去了,经测试没问题
4,当关闭我的面板,我就将listview中的项放回池

问题:
第一次是没问题的,问题出在第二次打开listview,当往里面添加prefab的时候,里面按钮上的事件没有清除掉,就造成了点击一下,触发多次

在prefab的reuse函数中,我是先清除了按钮的事件,再绑定的,但貌似无效,依然会随着prefab的重复回收,重复使用而触发多个事件

现在请教一下,这里是不是我的操作是不对的?我试过targetOff和off,都不行,如果是这样,到底是prefab的问题还是节点池的问题?我该怎么解决呢?

把你添加和清除事件的代码贴上来看看

btn.node.on(cc.Node.EventType.TOUCH_END,onClickByDefaultBtnEffect,this);
btn.node.off(cc.Node.EventType.TOUCH_END, onClickByDefaultBtnEffect);

这是我另外做的一个测试,我马上绑定,并且马上解绑,理论上是应该触发还是不触发?
我的结果是触发了,请问这样是对的吗?

解绑也要传this
btn.node.off(cc.Node.EventType.TOUCH_END, onClickByDefaultBtnEffect, this);

确实,我看api上写的target是可选参数,我以为可以不传,我再改改,谢谢

用了节点池就不对了

有没有方法可以吧按钮上的所有事件清除掉,targetOff?
如果我是一个button,应该怎么写?
button.node.targetOff(button.node)
这样对嘛?

这样会清除所有 target 是 this 的事件
targetOff(this);

明白了,是我自己的习惯问题,上下文我习惯上感觉是context,target我以为要指定一个对象,学习了,谢谢

可以帮忙看下这个问题吗
https://forum.cocos.com/t/targetoff/81473?u=306815785