问题:通过某一行后的button对改行数据进行编辑或删除时,无法获得索引值
原因:前端调用方法时无法通过clickMethod(arg)的方式传递参数,
解决办法:如下,在标签中加入 wx:for-index=“index”,声明一个index属性,在button中通过data-index="{{index}}"来绑定
<view class="code_box_record" wx:for="{{dataList}}" wx:key="_id" wx:for-index="index">
...
</view>
<button bindtap="addOrUpdateData" data-index="{{index}}" >编辑</button>
js中通过 e.currentTarget.dataset.index即可访问到索引
addOrUpdateData(e) {
let _index = e.currentTarget.dataset.index
console.log(_index)
},
参数传递:
使用 navigateTo函数,其中str为想要传递的参数,poster对象相当于str容器
addOrUpdateData(e) {
let _index = e.currentTarget.dataset.index
if (_index >= 0) {
let obj = this.dataList.at(_index)
let str = JSON.stringify(obj)
wx.navigateTo({
url: '../目标页面/目标页面?str='+str,
})
} else {
...
}
},
当要传递对象为obj类型时,先要通过 JSON.stringify(obj)函数将对象转为字符串,然后在目标页面的onLoad函数里通过options.参数名的方式获取到传递值,再通过JSON.parse(options.str)将字符串转为obj
onLoad(options) {
// console.log(options)
let obj = {}
obj= JSON.parse(options.str)
console.log(this.cropInfo)
},