この記事は、ミニプログラムにおけるデータコピーの問題の分析を提供します。必要な方は参考にしていただければ幸いです。
最近、私は同僚が複数の製品のレビュー ページを作成するのを手伝いました。マルチ製品とは、その名前が示すように、各製品に星評価があり、写真情報とレビュー コンテンツがアップロードされていることを意味します。パブリック アカウントの機能を利用するため、ミニ プログラムで複数の製品レビューを書くことを志願しましたが、罠にはまりました...
アイデアは非常に簡単です。まず、5 つ星のレビューを作成します。 5 つ星の画像、これです:
starList: [{ srca: "img/star02@3x.png", index: "1" }, { srca: "img/star02@3x.png", index: "2" }, { srca: "img/star02@3x.png", index: "3" }, { srca: "img/star02@3x.png", index: "4" }, { srca: "img/star02@3x.png", index: "5" }],
添字を削除してインデックスを直接使用して評価を表し、バックグラウンドから返された製品リストの配列に基づいて新しい配列 pductList を定義し、ループするのが面倒です。変数starListaを定義して配列に代入します
for(var i = 0; i < response.commoditys.length; i++) { response.commoditys[i].starLista = starList; }
同時にアップロードされた複数の写真のリストがあります 同じ操作を実行し、ループアウトされたスターにクリックイベントをバインドして、その添え字と判定用のインデックスを取得します。各製品の下のスター配列をループして src
for(var i = 0; i < app.dataList[index].starList.length; i++) { app.dataList[index].starList[i].srca = "img/star02@3x.png"; evaluateList[index].mark = idx + 1; if(i <= idx) { app.dataList[index].starList[i].srca = "img/star01@3x.png"; } evaluateList[index].mark = idx + 1; evaluateList[index].commodityid = cId; }
最後に、productList を取得します。基本的に、必要な値はすべてこの配列の中にあります、
------------- ------------------------------------ -------------- -----穴に落ちる-------------------------- -----------
私は小さなプログラムを書き始め、このアイデアに従って書き続けましたが、途中で突然、小さな星の列をクリックしていることに気づきました。星の色が変わります。トラブルシューティングを行って頭をかきむしりながら周りを見回したところ、
が定義された新しい配列 productListの添字 に従って starLista を変更したことがわかりました。小さな星の元の配列 starList 、最初は定義された配列もそれに応じて変更されます Baidu Google csdn ブログパークなどを経て、最終的に計画を考えました。 まず元の星配列
starList を文字列形式に変換し、そして、定義された新しい配列 pductList を与え、値を割り当てるときに、json 形式に変換する 関連する推奨事項: 以上がミニプログラムにおけるデータコピーの問題の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。let starListc=JSON.stringify(starList);
for(let i = 0; i < response.commoditys.length; i++) {
response.commoditys[i].starLista = JSON.parse(starListc);
}