Taro小程序,如果通过navigateBack传值?

现在有列表页list、编辑页edit,列表页通过查看编辑按钮都可以到edit页面,但是如果是编辑功能,返回需要刷新list页面,如果知识查看详情,则不需要刷新,所以在edit页面操作完成后,需要带一个参数到list,该页获取参数判断是否执行刷新操作。

编辑页面:

//如果cb不为空,表示需要通过navigateBack返回刷新参数,否则不需要传递参数回去
        goBack(cb) {
            Taro.navigateBack().then(res => {
                if(!!cb) {
                    cb()
                }
            })
        },
阅读 3.8k
1 个回答

传值页面:

let pages = Taro.getCurrentPages(); // 获取当前的页面栈 
let prevPage = pages[pages.length-2]; // 获取上一页面
prevPage.setData({ //设置上一个页面的值
  list: data
});
Taro.navigateBack({
  delta: 1
});

接收页面:

componentDidShow() { // 对应onShow,只有在onShow中才会监听到当前页面的改变
   let pages = Taro.getCurrentPages();
   let currentPage = pages[pages.length - 1]; // 获取当前页面
   if (currentPage.__data__.list) { // 获取值
     this.setState({ list: currentPage.__data__.list })
   } 
}

这是我写的方法,传值是这样的,给你做个参考。

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