将本身在小程序中遇到的一些问题和解决办法总结一下~json
data.js小程序
// 本地模拟数据 const userInfo = { "nickName": "yeo", "publish": 11, "fans": 8, "follow": 10 } // 定义数据出口 module.exports = { userInfo: userInfo }
在开发页面中使用数据源数组
//引入本地json数据,这里引入的就是第一步定义的json数据 const userInfo = require('../../data/userInfo.js'); ... this.setData({ userInfo: userInfo.userInfo });
... <view class="comment-container" wx:for="{{comment.comment}}" wx:key="{{index}}"> <view class="comment-part"> <view class="comment-left"> <image src="{{item.avatarUrl}}"></image> </view> <view class="comment-right"> <text class="font-blod author">{{item.author}}</text> <text class="comment-des">{{item.detail}}</text> </view> <view class="heart" bindtap="like" data-index="{{index}}"> <text class="iconfont icon-shoucang {{item.isSelected ? 'active' :''}}"></text> </view> </view> <view class="time"> <text>{{item.time}}</text> <text wx:if="{{item.likes >0}}" class="likes">{{item.likes}}次赞</text> </view> </view> ... like(e) { let index = e.currentTarget.dataset.index; let arr = this.data.comment.comment; if (arr[index].isSelected) { arr[index].isSelected = false; } else { arr[index].isSelected = true; } this.setData({ [`comment.comment[${index}].isSelected`]: arr[index].isSelected }) }
假设一个对象数组:ui
comment:[ {'aaa':'111' 'isSelected':false }, {'aaa':'222' 'isSelected':false }]
想要设置comment的isSelected属性,this
this.setData({ comment[index].isSelected: true//index为下标(代码表示场景) }); //由于index为变量,且存在[],因此咱们能够用拼接字符串的方式 that.setData({ [bingo]:1 }) //可是每次都要定义变量看起来就躁 //因此能够这样 that.setData({ [`comment[${index}].isSelected`]:true //模板字符串里面用${}计算属性 }); ... //data格式 data: { addressData:{ name:'', tel:'', address:'', more:'' }, defult:'' }, //setData的使用方法 that.setData({ ['addressData.address']: '大地影院' })