uni-app fast模式不支持uni.getStorageSync

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app fast模式不支持uni.getStorageSync

问题描述

在NVUE界面不支持uni.getStorageSync

onLoad() {  
    console.log(uni.getStorageSync("token"));  
},

编译器版本:2.6.4(v3)直接报错
11:30:41.055 [JS Framework] Failed to find taskCenter (1).
11:30:41.076 TypeError: plus.weexBridge.execSync is not a function. (In ‘plus.weexBridge.execSync(T.stringify(args),“pdr:”+T.stringify([service,action,!1]))’, ‘plus.weexBridge.execSync’ is null)


13 回复

解决了 原来不支持同步方法


测试一下 还是不行 照样报错~~无解了

解决方案:把fast 模式取消一切OK

验证没有问题,请提供一个简单工程
onLoad() {
uni.setStorageSync(‘token’, ‘hello’)
var token = uni.getStorageSync(“token”)
console.log(token);
}

bug 确认,已经加分,后续修复

HX2.6.5 v3编译 fast模式 在App.vue里使用uni.setStorageSync(‘test’, ‘test’);也是报同样的错误

回复 chenli: 已知,近期更新将修复

HX2.6.5 v3编译 fast模式 在App.vue里使用uni.setStorageSync(‘test’, ‘test’);也是报同样的错误

HBuilderX 2.6.6+ 已修复

请问下为什么我2.9.3版本的,使用ipad运行也报TypeError: uni.getStorageSync is not a function?

使用小程序跑没事,用ipad测的时候就报这个

Failed to find taskCenter (4)这个错误又出现了

在uni-app的开发过程中,uni.getStorageSync 是一个常用的API,用于同步获取本地存储中的数据。然而,在uni-app的fast模式下,这个同步API是不被支持的。fast模式是为了提高热重载速度和小程序性能而设计的一种模式,它限制了某些同步API的使用,包括 uni.getStorageSync

为了解决这个问题,你可以使用异步的 uni.getStorage API 来替代 uni.getStorageSync。下面是一个简单的代码示例,展示了如何在fast模式下使用异步API来获取本地存储的数据。

示例代码

假设你有一个页面,需要在页面加载时获取本地存储中的用户信息。

1. 使用同步API(在fast模式下会报错)

// 假设这是错误的做法,因为fast模式不支持
try {
  const userInfo = uni.getStorageSync('userInfo');
  console.log('用户信息:', userInfo);
} catch (e) {
  console.error('获取本地存储失败:', e);
}

2. 使用异步API(正确做法)

// 页面加载时获取本地存储的用户信息
Page({
  data: {
    userInfo: {}
  },
  onLoad() {
    // 使用uni.getStorage异步获取用户信息
    uni.getStorage({
      key: 'userInfo',
      success: (res) => {
        this.setData({
          userInfo: res.data
        });
        console.log('用户信息:', this.data.userInfo);
      },
      fail: (err) => {
        console.error('获取本地存储失败:', err);
      }
    });
  }
});

在这个示例中,我们使用了 uni.getStorage 来异步获取本地存储中的 userInfo。通过 success 回调函数,我们可以在获取到数据后更新页面的数据,并在控制台打印出来。如果获取失败,则会在 fail 回调函数中打印错误信息。

注意事项

  • 在使用异步API时,需要确保你的逻辑能够正确处理异步操作的结果,避免因为异步操作未完成而导致的错误。
  • 如果你的应用中有多处需要获取本地存储的数据,建议封装一个统一的函数来处理这些操作,以提高代码的可维护性和可读性。
  • 在开发过程中,注意检查uni-app的官方文档,了解不同模式下API的支持情况,以避免因为API不支持而导致的开发问题。

通过上述方式,你可以在uni-app的fast模式下安全地获取本地存储的数据,而不会因为使用不支持的同步API而导致问题。

回到顶部