美文网首页
小程序 常用功能记录+坑记录

小程序 常用功能记录+坑记录

作者: 一个冬季 | 来源:发表于2019-04-04 11:02 被阅读0次
好用的框架

Vant Weapp

1、返回上一页

2、进入某个页面,并传递很多参数

3、关闭所有页面,跳转到指定页面

4、修改小程序的标题

5、获取wxml里面的data-的值

6、采用wx.getStorageSync("")修改保存的对象数据

7、返回上一页并且传递参数给上一页

8、如果picker里面的index=-1如何撑高高度?

9、返回上一页,并调用上一页的方法

10、for循环遍历 textarea或者input标签,事件监听要如何处理

1、返回上一页
 wx.showToast({
        title: '成功',
        icon: 'success',
        duration: 1500
      });

      setTimeout(function () {
        wx.navigateBack({
          delta: 1//如果返回上2页,这里写2
        })
      }, 1500)
2、进入某个页面,并传递很多参数
//第一种写法
//发送页面
 let data={
      index:index,
      meetId: this.data.id,
      invitationId: this.data.invitationId,
      orgId: this.data.orgId
    }
    wx.navigateTo({
      url: '../../invite/user/index?data='+JSON.stringify(data)
    })

//接收页面
 if (option && option.data) {
      this.data.dataObj = JSON.parse(option.data);
      this.data.payIndex = this.data.dataObj.index;
      this.data.meetId = this.data.dataObj.meetId;
      this.data.invitationId = this.data.dataObj.invitationId;
      this.data.orgId = this.data.dataObj.orgId;
    }

//第二种写法
//发送页面
   wx.navigateTo({
      url: '../../invite/user/index?ids=meetId&name=name'
    })

   //接收页面
 this.setData({
      meetId: options.ids,
      name: options.name
   })

3、关闭所有页面,跳转到指定页面
wx.reLaunch({
  url: 'test?id=1'
})
如果你的验证token是在请求recommonts.js里面,然后你的token错误后需要跳转到登录页面的话需要这样操作 需要多加一个'/'
 wx.reLaunch({
    url: '/pages/login/index'
 })
4、修改小程序的标题
  wx.setNavigationBarTitle({
        title: "修改培训信息"//页面标题为路由参数
      })
5、获取wxml里面的data-的值
 enterdetailListener(event){
//注意参数建议不要驼峰命名
    let meetId =  event.currentTarget.dataset.indexvalue;
    wx.navigateTo({
      url: "./trainlistdetail?meetId=" + meetId + "&enterstauts=" + this.data.enterstauts,
    })
  }
6、采用wx.getStorageSync("")修改保存的对象数据
//错误做法
let userObj = wx.getStorageSync("loginInfo");
userObj.name="张三";
如果就这样是无法更改wx.getStorageSync("loginInfo")原本存储的数据
//正确做法
let userObj = wx.getStorageSync("loginInfo");
userObj.name="张三";
wx.setStorageSync("loginInfo", userObj);
7、返回上一页并且传递参数给上一页
//B页面
      let pages = getCurrentPages();
      let prevPage = pages[pages.length - 2];//获取到上一个页面
      prevPage.setData({//给上一个页面设置值
        message: e.currentTarget.dataset.msg,
      })
      //关闭当前页面
      wx.navigateBack({
        delta: 1,
      });

8、如果picker里面的index=-1如何撑高高度?

 <view class='ul'>
    <view class="li">
      <text>主办方</text>
      <picker bindchange="changeCountry" value="{{countryIndex}}" range="{{countryList}}" range-key="name">
        <view class="tui-picker-detail">{{countryList[countryIndex].name}}</view>
      </picker>
      <image src="{{imgUrl}}next01.png"></image>
    </view>
  </view>

.ul{
  margin-bottom: 0px;
}

.ul .li {
    min-height: 100rpx;
    padding: 0 45rpx 0 53rpx;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 28rpx;
    border-bottom: 1px solid #DCDCDC;
}

picker{
  min-height: 100rpx;
  min-width: 75%;
}

.tui-picker-detail{
  min-height: 100rpx;
  min-width: 75%;
}

9、返回上一页,并调用上一页的方法
A页面
 let id = event.currentTarget.dataset.id;
    //返回ID 给上一级
    let pages = getCurrentPages(); // 当前页面
    let beforePage = pages[pages.length - 2]; // 前一个页面
    wx.navigateBack({
      success: function () {
        beforePage.toLoadDataFromId(id); // 执行前一个页面的onLoad方法
      }
    });

B页面
toLoadDataFromId(fromId){
    console.log(fromId);
    if (!fromId){
      return;
    }
  },
10、for循环遍历 textarea或者input标签,事件监听要如何处理

比如,我有20条集合,每条集合都有input标签,或者是textarea标签,如果我们使用bindinput属性给每个标签单独命一个名字,这完全是愚蠢的做法。
正确做法如下

 <view class="li" wx:for="{{list}}" wx:for-index="index" wx:key="index" wx:for-item="item">
    <view class="tixing" >
      <view class="view_textarea">
        <textarea maxlength="500" name="" placeholder='请输入' data-index="{{index}}" bindinput="Bzhuguan" value="{{item.zhuguan}}" />
      </view>
    </view>

这里我们要注意一下,首先 bindinput="Bzhuguan" 与 value="{{item.zhuguan}}"
当我们拿到后台给的数据的时候,我们需要对数据进行处理

省略..很多代码
 for (let i = 0; i < res.list.length;i++){
        let item = res.list[i];
        item.zhuguan="";
    }
 this.setData({
        list:res.vos,
 })

最重要的来了,我们需要对Bzhuguan进行特殊处理

  Bzhuguan:function(event){
    let inputZhuanGuan = event.detail.value;//获取输入的值
    let index = event.currentTarget.dataset.index;//获取正在操作的index下标
    this.data.list[index].zhuguan = inputZhuanGuan; //将值重新赋值
    this.setData({
      ["list[" + index + "]"]: this.data.list[index],//这里是局部刷新操作
    })
  }, 

相关文章

  • 小程序 常用功能记录+坑记录

    好用的框架 Vant Weapp 1、返回上一页 2、进入某个页面,并传递很多参数 3、关闭所有页面,跳转到指定页...

  • 微信小程序服务端工具类

    小程序服务端会涉及到获取小程序用户openId等功能,记录一下常用的工具类。以便后续使用。 小程序工具类 上方使用...

  • 抖音小程序在IOS不能访问

    抖音小程序无法发布到抖音IOS版。 记录贴!!! 坑死人

  • 小程序踩坑记录

    小程序踩坑记录 最近做小程序比较多,就在此记录下平时遇到的问题。。。工作快三年了也没怎么记过笔记,希望能坚持下去吧...

  • 小程序坑-持续记录

    尽量只记录新发现的 而不是网上一大堆的 你以为在ios下div虽然失去了一些特性 但是可以使用 在安卓下用都不能用...

  • Android App跳转小程序,小程序返回App

    为什么写这篇文章呢?因为在做App跳转小程序,小程序返回App这个功能的时候,遇到的坑太多了,所以在这里记录一下。...

  • 微信小程序web-view上传图片

    最近做了在小程序嵌入的H5页面的选择并上传图片的功能,过程中踩了很多坑,写下此文记录一下。 首先,查看小程序文档可...

  • 微信小程序BLE踩坑记录

    小程序BLE踩坑记录 前往官方文档 项目描述 手机小程序通过BLE向android设备发送WIFI名称/密码等信息...

  • 小程序关联服务号推送模板消息

    记录一下小程序关联服务号的消息推送功能。准备工作:1、获取小程序的appid与appsecret(小程序后台获取)...

  • 微信小程序中页面间传值,并且赋值到data

    记录初学微信小程序中的坑在小程序中传值方式有几种,这里记录一下使用过的传值,并且附上例子: 首先是url传值 这样...

网友评论

      本文标题:小程序 常用功能记录+坑记录

      本文链接:https://www.haomeiwen.com/subject/yzoomqtx.html