微信小程序如何子组件改变父组件数据(状态)?

  1. 假设父组件有一个数据 count
  2. 子组件为list
  3. list组件包含子组件listItem
  4. 那么子子组件listItem如何来修改父组件的数据呢?

按照官网的父子组件数据传递方式,是通过bind:myevent传递自定义事件的方式来修改数据,但是遇到子子组件、多代子组件的情况,这种方式代码量非常冗余,而且可读性差,有没有类似react中可以直接通过prop传递一个方法的方式修改上层数据?或者类似redux provider这样的全局数据管理容器?

阅读 10.3k
2 个回答

globalData可以使用,但是有时候不会视图不会及时更新,所以如果不觉得有点奇怪的话,也可以直接在子组件setData父组件的data,来达到目的。

/*
* app.js中定义获取当前页面
*/

getTopPage()  {

let pages =  getCurrentPages()

return pages[pages.length -  1]

}
app.getTopPage().setData({ // 更新父组件数据

refresh:  true

})

小程序不是有个 global 变量么,你可以把它当 redux provider 用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏