溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序如何實現頁面跳轉傳值

發(fā)布時間:2021-05-22 14:05:06 來源:億速云 閱讀:329 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了微信小程序如何實現頁面跳轉傳值,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在安卓中頁面跳轉傳值都是通過bundle,現在研究一下小程序的列表跳轉及頁面?zhèn)髦怠?/p>

my.wxml

<view class="container">
 <view bindtap="bindViewTap" class="userinfo">
  <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
  <text class="userinfo-nickname">{{userInfo.nickName}}</text>
 </view>
 <view class="info_list">
  <block wx:for="{{userListInfo}}" >
   <view class="weui_cell" data-index="{{item.index}}" id="{{item.index}}"
    bindtap="userinfo_item">
    <view class="weui_cell_hd">
     <image src="{{item.icon}}"></image>
    </view>
    <view class="weui_cell_bd">
     <view class="weui_cell_bd_p"> {{item.text}} </view>
    </view>
    <view wx:if="{{item.isunread}}" class="badge">{{item.unreadNum}}</view>
    <view class="with_arrow"></view>
   </view>
  </block>
 </view>
</view>

my.js

var app = getApp()
Page({
 data: {
  userInfo: {},
  userListInfo: [{
   icon: '../../images/iconfont-dingdan.png',
   text: '我的訂單',
   isunread: true,
   unreadNum: 2,
   index:1
  }, {
   icon: '../../images/iconfont-kefu.png',
   text: '聯(lián)系客服',
   index: 5
  }, {
   icon: '../../images/iconfont-help.png',
   text: '常見問題',
   index: 6
  }]
 },
 onLoad: function () {
  var that = this
  //調用應用實例的方法獲取全局數據
  app.getUserInfo(function (userInfo) {
   //更新數據
   that.setData({
    userInfo: userInfo
   })
  })
 },
 userinfo_item: function (e) {
  var index = e.target.dataset.index;
  console.log("----index----" + index)
  console.log('-----id-----'
   + e.currentTarget.id)
  var app = getApp();
  //設置全局的請求訪問傳遞的參數
  app.requestId = e.currentTarget.id;
  app.requestIndex = index;
 }
})

微信小程序設置id的方法標識來傳值

在要跳轉的item處,設置一個id并給當前的id賦值上對應的key值,
id="{{item.index}}"
后我們在js的bindtap的響應事件中獲取,并傳遞到下一個界面中;
獲取到id傳的值
通過e.currentTarget.id;獲取設置的id值,并通過設置全局對象的方式來傳遞數值,
獲取全局對象 var app=getApp(); //設置全局的請求訪問傳遞的參數 app.requestDetailid=id;
在調試模式下:我們也可以在,wxml中查看到我們設置的每一個item的id值

通過使用data - xxxx 的方法標識來傳值

通過使用data - xxxx 的方法標識來傳值,xxxx可以自定義取名 比my.wxml中的data-index。
如何獲取data-xxxx傳遞的值?
在js的bindtap的響應事件中:
通過數據解析一層層找到數據,var id=e.target.dataset.index(根據你的data-id的取名)
如js中的兩個打印就是通過兩種不同方式獲得的id。

微信小程序如何跨頁面獲取值

依據上面的方式設置要傳遞的值,頁面跳轉后,我們就需要在下一個頁面拿到傳遞的數據(這個數據在傳遞前,就已經被設置成全局變量)相當于給全局變量添加了新的key,value
在跳轉后的js頁面,接收傳遞過來的數據detail.js
同樣通過全局額方式取值出來,(即和app.js中取某個變量的值是一樣的)

var id=getApp().requestId;
var index=getApp().requestIndex;
console.log(id);
console.log(index);

通過鏈接傳參:

wx.navigateTo({
 url: '/pages/account/feedback/feedback?test=feedback_test&name=jia',
 success: function(res) {},
 fail: function(res) {},
 complete: function(res) {},
})

點擊頁面跳轉時通過?方式傳參。在跳轉后的頁面JS中做如下接收:

onLoad: function (e) {
  var movieid = getApp().requestId;
  var movieIndex = getApp().requestIndex;
  console.log("-----feedback--movieid--" + movieid +" " + movieIndex);
  console.log("-----feedback--test--" + e.test);
  console.log("-----feedback--name--" + e.name);
 },

感覺比較好的方法還是通過鏈接方式進行參數傳遞,第一種有些像安卓中進行頁面跳轉,把一些傳遞的參數寫到Application中,第二種是像通過bundle方式進行傳遞。前端小白總結,希望前端豐富的同學可以提供更多思路。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信小程序如何實現頁面跳轉傳值”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI