小程序 第一个页面传递数据给第二个页面展示后如何再获取第二个页面的...

发布网友 发布时间:2022-04-23 04:44

我来回答

2个回答

懂视网 时间:2022-05-14 21:19

1 app.js 里面注册一个监听登陆页面登录成功的事件

步骤如下:

注册一个监听登录成功的事件

// 引入 broadcast
const {
 broadcast
} = require('utils/util')
// 注册一个监听登录成功的事件
// 在login页面执行
broadcast.on('login_success', function () {
 wx.redirectTo({
 url: `/pages/${name}/index`
 })
})

在 login 页面登录成功后,触发该事件

// 引入 broadcast
var {
 broadcast
} = require('../../utils/util')
// 触发事件 login_success
broadcast.fire('login_success')

2 在商品报损页注册一个监听报损商品 code 的事件

这个例子主要体现了使用 broadcast.fire 进行传参的功能

// 引入 broadcast
var {
 broadcast
} = require('../../utils/util')
// 触发事件 setBrokenBikeCode
// "bikeid": "0100010010"
broadcast.fire('setBrokenBikeCode', '0100010010')
// 引入 broadcast
var {
 broadcast
} = require('../../utils/util')
...
function next (bikecode) {
 that.setData({
 bikecode
 })
}
...
// 注册事件 setBrokenBikeCode
broadcast.on('setBrokenBikeCode', (bikecode) => {
 next(bikecode)
})

3 适当的时候使用 broadcast.on 的时候需要绑定 this 值

  • 绑定方式1:

  • var that = this
    broadcast.on('showRiding', function() {
     console.log(this) // 值为null
     that.showRiding()
    })

    原因:如上代码可见,在 broadcast.on 里面打印出的 this 值为 null,在这个函数体内 this 指向不明确所以值为 null。通常我们需要特意绑定 this, 然后才能使用

  • 绑定方式2:

  • 推荐使用

    broadcast.on('showRiding', function() {
     this.showRiding()
    }.bind(this))

    相关文章:

    微信小程序开发注册页面的介绍

    微信小程序页面间跳转如何监听事件

    热心网友 时间:2022-05-14 18:27

    1、设置id的方法标识跳转后传递的参数值;

    2、通过使用data - xxxx 的方法来标识要传递的值 微信小程序设置id的方法标识来传值在要跳转的item处,设置一个id并给当前的id赋值上对应的key值,比如一部电影的id(后面带着id去下一个页面查询,详细信息)如:

    后我们在js的bindtap的响应事件中获取,并传递到下一个界面中;

    获取到id传的值

    通过e.currentTarget.id;获取设置的id值,并通过设置全局对象的方式来传递数值,

    获取全局对象 var app=getApp(); //设置全局的请求访问传递的参数 app.requestDetailid=id;

    提示:其实我们也可以在,wxml中查看到我们设置的每一个item的id值

    通过使用data - xxxx 的方法标识来传值通过使用data - xxxx 的方法标识来传值,xxxx可以自定义取名 比如data-key等等都可以。

    如何获取data-xxxx传递的值?

    在js的bindtap的响应事件中:

    通过数据解析一层层找到数据,var id=e.target.dataset.id(根据你的data-id的取名)

    微信小程序如何跨页面获取值?

    依据上面的方式设置要传递的值,页面跳转后,我们就需要在下一个页面拿到传递的数据(这个数据在传递前,就已经被设置成全局变量)

    在跳转后的js页面,接收传递过来的数据detail.js

    同样通过全局额方式取值出来,(即和app.js中取某个变量的值是一样的)

    var movieid=getApp().MovieDetailid;

    console.log(movieid);

    到此为止,我们数值传递并接收成功,后面就可以根据我们接收的参数,进行进一步的操作了。

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com