可能未处理的承诺拒绝(id:0)反应原生的警告

use*_*472 2 javascript reactjs react-native

我试图在反应原生的AsyncStorage中存储数据时收到此错误,并且数据也没有添加到存储

可能的未处理的Promise拒绝(id:0):错误:com.facebook.react.bridge.ReadableNativeMap无法强制转换为java.lang.String错误:com.facebook.react.bridge.ReadableNativeMap无法强制转换为java.lang.String*

我的代码是这样的

  //Public methods
  static addProduct(id,name,qnty){

    let   product={
        id:id,
        name:name,
        qty:qnty,

      };
      let cartResponse={};
      product.rowId = this.generateHash(hashItem);
        AsyncStorage.getItem('CART').then((data) => {
          //Check if the product already in the cartTotalItem
          if (data !== null && data.length>0) {
              if (this.checkIfExist(product.rowId)) {
                //Update product quantity
                data[product.rowId]['qty'] += product.qty;
              }else{
                //Add add product to the storage
                data[product.rowId] = product;
              }
              //Update storage with new data
              AsyncStorage.setItem("CART", data);
              cartResponse = data;
          }else{
            let cartItem ={};
            cartItem[product.rowId] =product;
              AsyncStorage.setItem("CART", cartItem);
              cartResponse =cartItem;
          }
            return true;
        }).catch(error => {
          console.log("Getting cart data error",error);
          return false;
        });
  }
Run Code Online (Sandbox Code Playgroud)

我试图寻找解决方案,我找到了一些链接,其中, 可能未处理的承诺拒绝(ID:0)警告有点旧,但有与我相同的问题.

我试图从线程中应用相同的解决方案,但这并没有解决问题.

有人可以帮忙吗??谢谢.

ben*_*nel 6

该错误是由setItem功能引起的.setItem也返回一个promise,你的值应该是一个字符串.

样品

AsyncStorage.setItem("CART", JSON.stringify(cartItem));
Run Code Online (Sandbox Code Playgroud)