收藏
回答

数据更改后,模板样式丢失问题?


<view id="{{list.id||id}}" class="hlist {{list.listClass||list.class}}" >
        <block wx:if="{{util.isArray(list.data)}}">
          <block wx:for="{{list.data}}" wx:key="__key">
            <template is="itemContent" data="{{item, type: list.type}}" />
          </block>
        </block>
        <!-- <template is="listContent" data="{{collects: list.data, list}}" /> -->
      </view>


自己封装的列表组件,会触发修改样式及内容

  1. 确定listClass一定有值'width: 100%;',给view加上wx:if="{{list.listClass}}" 后,模板正常

  2. 列表子元素样式正常,确定是类'list-normal'的子元素样式

  3. 数据正常


更新方法为

that.setData({
    'list.listClass': 'list-normal',
    'list.data': [...]
})


问题表现:列表容器的样式类list-normal,在开发者工具中看上去丢失了,导致容器样式无效,但子元素有效

最后一次编辑于  2019-12-15
回答关注问题邀请回答
收藏

1 个回答

  • 黯伢
    黯伢
    2019-12-16

    {{list.listClass||list.class}}这是个判断语法,返回的是boolean类型,按你的setData的数据来开,你应该改成class="hlist {{list.listClass}}"这样就是字符串了。

    2019-12-16
    赞同
    回复 2
    • 天天修改
      天天修改
      2019-12-16
      这样是没问题的,上面也提到了,如果加上wx.if就好使,应该不是你说的原因,我想
      2019-12-16
      回复
    • 黯伢
      黯伢
      2019-12-16回复天天修改
      可能js这样写没问题,但是模本语法这么写可能就有问题了,没看到在wxml中用js还要放到wxs(还不能用很多函数)中吗?
      2019-12-16
      回复
登录 后发表内容
问题标签