收藏
回答

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


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

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

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

6 个回答

  • 阿冠
    阿冠
    2021-04-25

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

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

    2021-04-25
    有用 2
    回复 2
    • 阿冠
      阿冠
      2021-04-25
      换个地方:比如点击事件 或者 show?
      2021-04-25
      回复
    • 夕颜妃子笑
      夕颜妃子笑
      2023-10-10
      在js中呢,加settimeout可以么
      2023-10-10
      回复
  • 张小春春春春春春春春春
    张小春春春春春春春春春
    2023-01-06

    ready生命周期没问题,可以获取到。

    2023-01-06
    有用 1
    回复
  • DRY
    DRY
    2023-11-22

    因为options是异步赋值的。我也遇到了。吐了。

    验证:你用setTimeout包一下再读取options就有了。

    2023-11-22
    有用
    回复
  • Able
    Able
    2022-11-27

    自定义组件的生命周期函数

    小程序组件可用的全部生命周期如下表所示:

    生命周期函数参数描述说明

    created无在组件实例刚刚被创建时执行

    attached无在组件实例进入页面节点树时执行

    ready无在组件在视图层布局完成后执行

    moved无在组件实例被移动到节点树另一个位置时执行

    detached无在组件实例被从页面节点树移除时执行

    errorObject Error每当组件方法抛出错误时执行

    在组件里用ready()这个方法去执行获取就可以了


    2022-11-27
    有用
    回复
  • 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
    • 阿冠
      阿冠
      2021-04-25
      问的是组件中获取不到options,你写的是在页面中获取options
      2021-04-25
      回复
  • 卢霄霄
    卢霄霄
    2019-10-22

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

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