WeChat アプレットでは、あるページから別のページに移動するときに、通常、ナビゲーションまたはリダイレクト時に URL を介してパラメーターを運び、ターゲット ページの onLoad 関数パラメーターでこれらの URL パラメーターを取得できることがわかっています。例:
// 源页面A相关代码 wx.navigateTo({ url: "/pages/mypage/mypage?a=1&b=2" }) // 目标页面B相关代码 Page({ onLoad: function (options) { var a = options.a; // 值:1 var b = options.b; // 值:2 } })
ただし、この方法は対象のページがまだ作成されていない場合にのみ有効です。ページの onLoad メソッドは、ページのライフ サイクル中に 1 回だけ実行されるためです。
次のシナリオを考えてみましょう:
1. 在【页面A】中调用wx.navigateTo方法跳转到【页面B】 2. 然后从【页面B】返回【页面A】, 并将【页面B】中的一些数据传回【页面A】
より実用的な例として、下の図に示すように、このフォーム ページ A:
A ページにデータを入力します
その後、このページにデータを入力します、検索ボタンがあります。このボタンをクリックすると、別のセキュリティ コード検索ページ B:
ページ B
この検索リストでセキュリティ コードを選択すると、前のページに戻りますページ 未完了のフォームへの入力と送信操作を続行するためのフォーム ページ。
このシナリオは非常に合理的で一般的です。
しかし、考えてみましょう。ページ B を終了してページ A に戻るときに、ページ B で選択したセキュリティ コードをページ A に戻すにはどうすればよいでしょうか? URLを使用してnavigateTo()でパラメータを運ぶにはどうすればよいですか?
ページのライフサイクルに基づくと、私たちの答えは「いいえ」です。
それでは何ができるでしょうか?
方法 1: グローバル データ ストレージを使用する
転送するデータを App オブジェクト (globalData 属性など) に保存します。
転送するデータをミニプログラムのローカルデータキャッシュ(Storage)に保存します。
たとえば、ページ B を終了しようとしているとき、次の呼び出しを行います:
//=== 1. 存储到app对象上的方式 ======== var app = getApp() app.globalData.mydata = {a:1, b:2}; //存储数据到app对象上 wx.navigateBack(); //返回上一个页面 //=== 2.存储到数据缓存的方式 ========= wx.setStorage({ key: "mydata", data: {a:1, b:2}, success: function () { wx.navigateBack(); //返回上一个页面 } })
このようにして、前のページに戻るときに、これらのグローバル ストレージ領域のデータを読み取ることで、必要なものを取得できます。
ただし、この方法には明らかな欠点もあります。グローバルデータストアなので、そのデータを保存する場合は、グローバルデータの管理(破壊時)に注意しないと、注意しないと副作用が発生します。
方法 2: ページ ルーティング スタックから対象の Page オブジェクトを直接取得して操作する
この方法は、このルーティング スタック内のミニ プログラムの API: getCurrentPages() を呼び出して、現在のページ ルーティング スタックの情報を取得します。ルーティング シーケンスには、ページに応じて現在のページ ルーティング スタックの情報が取得され、上位レベルのページの完全な Page オブジェクトを簡単に取得できるため、プロパティとメソッドを直接呼び出すことができます。 Page オブジェクトの。
以下に示すように:
var pages = getCurrentPages(); var currPage = pages[pages.length - 1]; //当前页面 var prevPage = pages[pages.length - 2]; //上一个页面 //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 prevPage.setData({ mydata: {a:1, b:2} })
グローバル データ ストレージ方法と比較して、この方法はロジックがはるかに明確であり、データ破壊のための追加の管理作業がありません。
つまり、現時点では、そのようなシナリオに遭遇した場合は、方法 2 を使用してコードを設計することをお勧めします。また、ミニ プログラム フレームワークが、このデータ リターンの問題を解決するための、より優れた、よりエレガントな方法を導入できることを願っています。
以上がWeChat アプレットが子ページから親ページに戻るときのデータ転送プロセスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









