小程序实践小坑小结(一)

最近自己在做小程序练习,分享一下我遇到的小坑

data数据更新

  • 直接对this.data进行赋值,是无法更新视图绑定的数据的,会造成数据不一致
  • 需要使用this.setData更新
this.data.key = value
this.setData({
  key: value
})

require

  • 暂时不支持绝对路径
const util = require('../../utils/util.js')

background-image

  • 不能使用静态文件,只能使用base64和网络图片
  • 可以用<img>解决
background: #fff url(data:image/jpeg;base64,***)
<image class="logo" src="/images/logo.png" mode="cover"></image>

组件样式

  • app.wxss 的样式不能应用到组件内部
  • 可以按需引用 import: “”
@import "/app.wxss";

textarea

  • textarea默认样式有固定宽度

事件传参

  • 模板里面事件不能传参
  • 使用event.currentTarget.dataset获取
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

Page({
  tapName(event) {
    console.log(event.currentTarget.dataset.hi)
  }
})

animation

  • animation不能直接绑定中组件上
  • 外面包裹一层<view>
<view animation={{animation}}>
  <my-component></my-component>
</view>

checkBox

  • checkbox-group绑定的bindChange事件,我们中点击checkbox事件会向上冒泡,导致外层也被点击
  • checkBox外面包一层view,给view添加一个catch事件
<checkbox-group bindchange="checkboxChange">
  <view bindtap="bindTap">
    <view catchtap='catchTap'">
     <checkbox value="{{value}}" checked="{{checked}}"/>
    </view>
  </view>
</checkbox-group>
    原文作者:sss55b
    原文地址: https://segmentfault.com/a/1190000015853583
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞