收藏
回答

组件属性不能直接传递对象吗

问题模块
API和组件

组件属性值不能直接传递对象吗

比如:

<producttimer position="{{object}}" ></producttimer>

object是对象,里面包含数组等数据

properties: {

position:  null,

},

用这个this.data可以得到值,但是为什么this.data.position却获取不到值


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

13 个回答

  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-12-06
    1. 如果读不到数据,我推测是时机不对。组件使用者 setData 而来的数据,ready 的时机不保证在这个 setData 之后。

    2. getApp是可用的,但是这种全局调用容易有一点时序的问题:你不太容易控制各个组件和页面访问全局量的顺序,用的时候小心一点还是可以的。我的建议是,对于这个组件的不同实例间共享的量,直接写在组件文件内、Component()调用之前;对于需要在好几个js文件中共享的量,可以单独写在一个js文件中export出来,需要用的文件require它就好了;另外可以关注一下自定义组件的behaviors,常常可以解决一些这方面的问题。

    2017-12-06
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-12-06

    你的意思是 “2” 的位置有问题?可以展开对象看看吗?(有时候不展开看不到里面有字段)

    2017-12-06
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-12-06

    属性值为空


    空是指null还是undefined呢?

    2017-12-06
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-12-06
    • 那么你读到的 this.data.position 具体是什么呢?null还是undefined?

    • 传入的 object 数据具体是什么?

    2017-12-06
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-12-06

    你好,我简单试了一下,并没有发现你提的问题。


    这里需要注意:created 生命周期的时候 this.data 还没有被赋予属性值。

    2017-12-06
    赞同
    回复
  • 王不伍
    王不伍
    2017-12-06

    好的,谢谢,第一点已经改写另一种写法。

    2017-12-06
    赞同
    回复
  • 王不伍
    王不伍
    2017-12-06

    我还有个问题,这个组件里面能有什么办法获取到全局的变量吗?像其他js页面如:var app = getApp();或者能直接写到原型上面的

    2017-12-06
    赞同
    回复
  • 王不伍
    王不伍
    2017-12-06


    date对象展开是这样的,就是2这个地方取不到,1是直接取this.data可以看到这个date里面是有值的但是this.data.date却访问不到

    2017-12-06
    赞同
    回复
  • 王不伍
    王不伍
    2017-12-06


    如图所示

    2017-12-06
    赞同
    回复
  • 王不伍
    王不伍
    2017-12-06

    object 数据如图就是Data值,我怀疑是不是数据太多有问题

    2017-12-06
    赞同
    回复

正在加载...

登录 后发表内容