关于父页面传值到组件的问题?

传值光看到key,没有value。。
父页面:

 <nav1 :syncData.sync="requestData"  :syncUrl.sync="requestUrl"></nav1>     
// 声明 test 变量 
  data = {
  tabs: ['1', '2', '3', '4'],
  activeIndex: 0,
  sliderOffset: 0,
  sliderLeft: 0  ,  /* 控制导航栏*/
  articles :[],
  page : 1,
  requestData: {
   video: '' ,
   test : ''
   },
  requestUrl: null
 }
 components = {
   nav1 : nav1,
   nav2 : nav2,
   nav3 : nav3,
   nav4 : nav4,

 }

 // 赋值
 this.test = this.$parent.globalData.test

到组件nav1 中:


    props = {
      // 父页面传入,请求参数
      syncData: {
        type: Object,
        default: {}
      },
      // 父页面闯入,请求url
      syncUrl: {
        type: String,
        default: 'articles'
      }
    }

    // 打印
    onLoad(){
  console.log(this.syncData)
  this.getTitles()

}

打印结果
file

@李山河
你看我吊吗啊
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
liyu001989

file

file

这不是你传进去的?啥叫没有value

5年前 评论
你看我吊吗啊

@liyu001989 截图里我在父页面为video和test赋值,通过 :syncData.sync="fornav3" 传到组件中,video 和 test 只有键,没有值,是我操作有误吗

5年前 评论
liyu001989

file

你给video 和test 赋值了?你好好理解一下页面属性的赋值

5年前 评论
你看我吊吗啊
5年前 评论
你看我吊吗啊

@liyu001989
刚才又试了一下,我声明了新的变量

 fornav3 : {
   test3 : ''"
   },

在 『onload』中赋值

  onLoad(options){
   this.getTitles()
   this.requestUrl = 'articles'

  this.test3 = this.$parent.globalData.weid  // 这里是赋值
  console.log('父页面weid='+this.test3)
   this.$invoke('nav1', 'reload')
   this.$invoke('nav2','reload')
   this.$invoke('nav3','reload')
   this.$apply()
 // console.log(this.articles) 到这里 就该没数据
    }

控制台输出

file

赋值确实是7 ,但是到了组件中是没值的:

   onLoad(){
    console.log('nav3-onLoad')
    console.log(this.syncData)

   }

file

不过我发现好像是先执行了组件中的onload后执行的父页面中的 onload ,可能是赋值晚于取值。。。

5年前 评论
你看我吊吗啊

自顶。。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!