Component的自定义组件相互独立怎么办?
发布于 6 年前 作者 songna 19288 次浏览 来自 问答

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

10 回复

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

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

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

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

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

  1. 抛个事件给组件的使用者(页面),在外层做组合。

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

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

大多数情况下请使用triggerevent

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

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

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

回到顶部