微信小程序不能使用push()和unshift()方法给数组添加元素(解决方法)

以下为个人学习微信小程序时遇到的一些问题及解决方法,如果有误欢迎指正。

目的:今天写微信小程序的时候遇到了一个问题,我想把每次输入框输入的内容添加到数组中,然后使用wx.setStorage存储到本地缓存中(类似于添加购物车的内容)。
过程:在我使用push()方法给数组添加元素的时候出现了这样的问题:
WXML页面代码:



<input placeholder="请输入内容" focus="true" bindinput="setpass"></input>
<button bindtap="setSto">
  点击储存信息
</button>


js页面代码:

Page({

  data: {
      password:"",
      pslish:[]
  },
  onShow(){
    let _this=this;
    wx.getStorageInfo({
      success: function(res) {
        let resArr=res.keys //获取储存中的keys数组
        for(let i =0;i<resArr.length;i++){
          console.log("resArr[i]---",resArr[i])
          if (resArr[i] ==="pslish"){
            wx.getStorage({ //循环获取每一个Storage的内容值
              key: resArr[i],
              success: function (res) {
                console.log("res--", res)
                _this.setData({
                  pslish: res.data||[]
                })
              },
              fail(){
                _this.setData({
                  pslish: []
                })
              }
            })
          }   
        }
      },
    })
  },
  setpass(e) {
    let _this=this;
    this.setData({
      password:e.detail.value
    })
  },
  setSto() {
    let _this=this;
    console.log("_this.data.pslish----", _this.data.pslish)
    console.log("_this.data.password----", _this.data.password)
    let psListData = _this.data.pslish.push(_this.data.password)
    console.log("psListData----", psListData)

    this.setData({
      pslish: psListData
    })
    wx.setStorage({
      key:'pslish',
      data: _this.data.pslish
    }
     
    )

  }
})

当我在input框输入内容并点击“储存信息时”,查看控制台输出的内容:

使用push()或者unshift()方法给数组添加元素之后,发现我们的数组变成了一个数字!!!
使用typeof 检查类型,发现是number。
也就是说,我们的数组变成了数字1。
Storage里面查看,果然也是如此,
在这里插入图片描述
value是1,type是Number。

那么微信小程序里面怎么给数组添加元素呢?

修改上面的代码,使用concat()方法
在这里插入图片描述
保存刷新,记得清除Storage!!! ,在input中随便输入内容后,再次查看:
在这里插入图片描述
在这里插入图片描述
发现Storage里面已经可以存进去我们要的数组了:显示类型为Array。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值