收藏
回答

关于在组件中获取不到options的问题?


var pages = getCurrentPages();
var currentpage = pages[pages.length - 1]

在组件中能够拿到currentpage,也有options选项,为什么在获取的时候currentpage.options就是undefined呢?而且遍历这个对象也没有遍历到options。这是什么原因啊?

回答关注问题邀请回答
收藏

3 个回答

  • 阿冠
    阿冠
    04-25

    我想了下,应该是异步函数的问题,options应该是从某个异步函数中被添加上去的,所以在组件的attached中直接同步获取获取不到。。。。

    换个地方就能获取了。。。。

    04-25
    有用 1
    回复 1
    • 阿冠
      阿冠
      04-25
      换个地方:比如点击事件 或者 show?
      04-25
      回复
  • 怪诞咖啡
    怪诞咖啡
    2019-10-22
    onLoad(options) {
      // 所有路径信息
      var pages = getCurrentPages();
      // 当前页面信息 可以直接理解为当前页面的this
      var currentpage = pages[pages.length - 1]
     
      console.log('pages=>', pages)
     
      console.log('currentpage=>', currentpage, currentpage.options)
     
      console.log('页面接收参数=>', options)
    },

    这里的currentpage就是page,就是this所有,就会有this所具有的所有属性和方法

    再说遍历options问题

    Page({
      onLoad(){
        var pages = getCurrentPages();
        var currentpage = pages[pages.length - 1]
        console.log('currentpage=>',currentpage.options)
        for(let i in currentpage){
            console.log(i)
            if(i=='options'){
                console.log('i=>',i)
            }
        }
      },
    })

    结果:


    经过实验无论页面是否存在options参数,也就是options是否为空都能通过for循环获得,至于你为什么没有获得,不清楚你是怎么操作的

    2019-10-22
    有用
    回复 1
    • 阿冠
      阿冠
      04-25
      问的是组件中获取不到options,你写的是在页面中获取options
      04-25
      回复
  • 卢霄霄
    卢霄霄
    2019-10-22

    并听不懂你在说什么,去弄个代码片段吧

    2019-10-22
    有用
    回复
登录 后发表内容
问题标签