微信小程序前端操作列表时获得所在行索引及页面跳转参数传递问题

问题:通过某一行后的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)
  },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序中,可以使用`wx.navigateTo`或`wx.redirectTo`方法跳转页面,并且可以通过传递参数的方式将数据传递到目标页面。具体实现方法如下: 1. 在源页面中,使用`wx.navigateTo`或`wx.redirectTo`方法跳转到目标页面,并将数据以对象的形式传递给目标页面。例如: ```javascript wx.navigateTo({ url: '/pages/target/target?id=123&name=小明&age=18', }); ``` 在上述代码中,我们将数据以查询字符串的形式传递给目标页面,查询字符串的键值对以`&`分隔,键和值之间以`=`连接。 2. 在目标页面的`onLoad`生命周期函数中,获取传递过来的数据。例如: ```javascript onLoad: function (options) { console.log(options); // { id: '123', name: '小明', age: '18' } }, ``` 在上述代码中,我们可以通过`options`参数获取传递过来的数据,`options`是一个对象,包含了所有传递过来的查询字符串的键值对。 需要注意的是,如果传递的数据是一个对象,可以使用`JSON.stringify`方法将其转换成字符串,然后在目标页面中使用`JSON.parse`方法将其转换回对象。例如: ```javascript // 在源页面中传递对象参数 const obj = { id: 123, name: '小明', age: 18 }; wx.navigateTo({ url: `/pages/target/target?data=${JSON.stringify(obj)}`, }); // 在目标页面中获取对象参数 onLoad: function (options) { const data = JSON.parse(options.data); console.log(data); // { id: 123, name: '小明', age: 18 } }, ``` 在上述代码中,我们将传递的对象参数使用`JSON.stringify`方法转换成字符串,然后将其以查询字符串的形式传递给目标页面。在目标页面中,使用`JSON.parse`方法将其转换回对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值