- 当前 Bug 的表现(可附上截图)
navigator中无法获取变量值,如图:
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
WXML:
< view class = 'topic-title' > < text >#话题讨论{{current_circle.circle_id}}</ text > < navigator data-id = "{{current_circle.circle_id}}" url = '/pages/topic/index/index?circle_id={{current_circle.circle_id}}' hover-class = "none" > < text >加入讨论{{current_circle.circle_id}}</ text > < image src = '/resources/images/more@3x.png' mode = 'aspectFill' ></ image > </ navigator > </ view > |
JS:
Page({ data: { current_circle: { } }, onLoad: function (){ var that = this var current_circle = that.data.current_circle current_circle.circle_id = 27 that.setData({ current_circle: current_circle }) } }) |
navigator是一个跳转组件,参数用?拼接在路径后面。如果想要获取这个参数值的话,到你跳转的页面onload函数里面,console.log(options)就可以拿到了
这个我知道,现在的问题是通过onLoad 或者 onShow 对值进行修改之后,navigator那边的值不会变,但是页面其他值都是可以正常取到的,你看我上面那个截图
你的意思是从A页面跳到B页面。然后把A传过来的值在B页面改掉,还想让A页面的值变是吗?
不是,就是在当前页面,当值发生改变的时候navigator里边的值不会跟着变,但是当前页面的其他地方的值都变了,就是navigator URL中的变量值一直不变,看我的截图,对照上面的代码,下面的wxml你就知道问题了。
有代码片段没?发一下,demo也行
上面我已经贴了代码出来了,你可以试下,运行出来 navigator 中的 data-id="
{{current_circle.circle_id}}"能取到23就正常,如果是undifined就不正常
没复现很正常
你也可以用bindtap方式来跳转,不一定非得用navigator
通过 onLoad 或 onShow 修改成其他的值就不行
current_circle.circle_id = 23
this
.setData({
current_circle: current_circle
})