taro 向新页面传递数据

通常用Taro.navigateTo可以打开一个新路由页面,他的底层原理是创建了一个同级的页面div,然后把原先的页面级div隐藏了

如何传递数据?(这里所说的页面全都指taro的路由页哈,跟浏览器的标签页和react-router的路由页不一样)
比如A页面打开B页面,A页面想往B页面,传递大量的数据

A页面在跳转之前,先preload数据

    Taro.preload({ test: '这是传递的数据' })
    Taro.navigateTo({
      url: `B页面url`,
    })

然后B页面就可以在useEffect里面取到

 useEffect(() => {
    console.log(Taro.getCurrentInstance().preloadData)
  }, [])

看到github上issues上有人说useEffect的时机不对,获取不到数据,但是那是2019年时候的issue了,现在发现是可以获取到的

ps: 这个preload方法 有个不知道是不是bug,只要调用过一次,后面即便再次打开,没有preload,也能拿到preloaddata,也就是说,他这个preloaddata不会清空,所以需要在打开的页面里面手动清空

在B页面调一下Taro.preload({})清空即可

 useEffect(() => {
    console.log(Taro.getCurrentInstance().preloadData)
    //  对preloadData的数据进行业务操作xxx
 //  .....
 //  .....
 //  .....
Taro.preload({})  // 清空

  }, [])

你可能感兴趣的:(taro 向新页面传递数据)