Component的自定义组件相互独立怎么办?

发布于 7 年前作者 songna19432 次浏览最后编辑 7 年前来自 ask

我用for循环出来的,组件列表,点击分组1中的val,和再点击分组2中的val是独立的,总是显示最新一组的,我把他们push到app.js上面或者合并,之前的值就为空了,这是怎么回事,app.js受组件的影响吗,组件的值是独立的吗

10 回复
bcheng
bcheng1 楼6 年前

每次 change 的时候直接 concat 已有列表肯定是这样的结果啊。你要写一些更复杂的业务逻辑来处理你这个需求才行。

这里我也不太好详细解释。

zmo
zmo2 楼6 年前

对,这就是自定义组件的独立性。

qianxia
qianxia3 楼6 年前

无论哪种做法,单个组件实例只能访问它自己范围的数据。所以如果你要组合多个实例的数据,一定是要将这些数据通过事件或组件间关系来抛给父组件处理。

li40
li404 楼6 年前

可是你截图的代码并不是啊……组件里调wx.createSelectorQuery和页面里是不一样的。

aqian
aqian5 楼6 年前
  1. 抛个事件给组件的使用者(页面),在外层做组合。

  2. 或者用组件间关系,也是类似的方法。

xcheng
xcheng6 楼6 年前

初步判断是你的代码问题,请先检查一下。

panming
panming7 楼6 年前

大多数情况下请使用triggerevent

xuyan
xuyan8 楼6 年前

你可能对组件间关系的用法有些误解。其实两者适用的场景是明显不同的,你应该很容易选择适合你的那一种方式。

xiuying55
xiuying559 楼6 年前

组件内的节点是属于组件的,不属于页面。

uhuang
uhuang10 楼5 年前

请参见我5楼的回答,或者仔细阅读 wx.createSelectorQuery 文档的 .in() 方法,或者参见自定义组件的 this.createSelectorQuery 方法。