小程序中有一个横向导航菜单,点击不同选项去加载不同的自定义组件,有些菜单选项所对应的组件是相同的,这时候发现点击这些选项进行切换的时候数据并没有发生变化。
原因:因为组件在上一次已经加载完成了,而组件中数据初始化操作(initData方法)是放在ready中的,所以并不会触发初始化
解决:小程序官方文档中,生成的组件实例包含一些属性和方法,可以用selectComponent方法选中组件实例
这里已经声明一个自定义组件tower并在父组件中引入,自定义组件内部使用initData()方法来初始化数据
父组件
<tower id="towerId" />
然后在父组件对应的方法中找到子组件,调用其方法
this.selectComponent("#towerId").initData()