收藏
回答

slide-view在wx:for下selectComponent无法获取内容

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug slide-view 工具 7.0.0 2.4.4

我的项目中用到了微信提供的第三方自定义组件slide-view,而且是循环使用,


具体使用如下:

wxml文件:

<view id='{{item.id}}' class='item' wx:for='{{tagArray}}' wx:key='{{index}}'>

    <slide-view id='{{item.id}}' width='750' height='100' slideWidth='150'>

        <view class='left_view display_flex5' id='{{item.id}}' slot='left' catchtap='seeTagFunc'>{{item.name}}</view>

        <view class='right_view display_flex5' id='{{item.id}}' slot='right' catchtap='deleteTagFunc'>删除</view>

    </slide-view>

</view>

json文件:

{

    "component": true,

    "usingComponents": {

    "slide-view": "/my/component/base/wechatComponent/slideView/slideView"

    }

}


问题如下,删除标签6:




删除后


从上图中发现,我删除标签6后,因为是将tagArray里标签6的信息给删除,会出现如图所示的问题,现在我想在deleteTagFunc里增加一个回弹的方法,在删除一项时先将该
slide-view的偏移量置零再删除,已避免上述问题的发生,

于是在js文件里增加

deleteTagFunc: function(e) {

    let self = this;

    wx.showModal({

        title: '提示',

        content: '确认删除标签',

        confirmText: '是',

        cancelText: '否',

        success(res) {

            if (res.confirm) {

            self.deleteTag(e.currentTarget.id);

            }

        }

    })

},




deleteTag: function (tagId) {

    console.log(tagId);

    //回弹

    let slideView = this.selectComponent('#' + tagId);

    console.log(slideView);

    slideView.moveBack(); //slide-view内部增加方法 偏移量置零


    //其他删除逻辑

    。。。

}


发现输出tagId有值,slideView 有时有值,有时为空,导致moveBack方法无法调用而报错,请问为什么selectComponent获取不到自定义组件

ps:我尝试过将delteTag里的tagId写死,同样获取不到


回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2019-01-15

    wx:key 不能用index,你给每一项给个独一无二的id

    2019-01-15
    有用
    回复 5
    • 2019-01-15

      我id是独一无二的啊,tagArray里每一项都有一个唯一的id

      2019-01-15
      回复
    • 卢霄霄
      卢霄霄
      2019-01-15回复

      wx:key="id" 这么设,就正常了

      2019-01-15
      回复
    • 2019-01-15回复卢霄霄

      感觉不是这个问题啊,还是会时不时的出错



      2019-01-15
      回复
    • 卢霄霄
      卢霄霄
      2019-01-15回复

      我的意思是,写成这样,不会出现你截图里删除的时候删除的状态留给了下一项这种情况。。

      能做个代码片段吗?

      https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2019-01-15
      回复
    • 2019-01-15回复卢霄霄

      哦哦,是的,之前没注意,我把回弹屏蔽了就可以了,不会传递给下一项就不用加回弹了,多谢了

      2019-01-15
      回复
登录 后发表内容