- 需求的场景描述(希望解决的问题)
有这样一个常用场景:
商品详情 A ——》购物车——》商品详情B
页面堆栈是[productDetail:A,CartList,productDetail:B]
商详A,B共用一个页面,但是传参不同 (productID)
当我通过默认的返回从B页面返回购物车再返回A页面时,发现内部的页面状态是B页面的。
就是说,虽然路径上的参数已经回到了productID = A,但页面的内部状态依旧是B。
导致此时如果在A页面加车时,实际上是对B商品进行加车。
但是更新参数的行为只能在onLoad()上触发,onShow()无法获取路径参数。
但是返回A页面时,是不执行onLoad方法的。
这应该是框架设计上的不周全,如果像Vue那样相同路由共享一个page 状态的话。要么提供一个整个页面流程都能获取参数的方法用于自更新页面状态。要么提供parmas路由参数,不同parmas不共享状态。
- 希望提供的能力
希望目前能在onShow()方法内抛出同onLoad()一样的option参数,解决该场景问题。
- 目前苏宁通过reLaunch规避了重复打开详情页的场景,JD购物则隐性的存在该bug。
微信小程序开发问题解答
微信小程序开发者回答:
onShow() 是监听页面显示。onload是监听页面加载。 a页面带参数跳转至b页面。b页面是要在onload进行加载的
本文网址:http://www.91bianli.com/weixinxiaochengxu/19375.html