ホームページ  >  記事  >  WeChat アプレット  >  ミニプログラムにおけるデータコピーの問題の分析

ミニプログラムにおけるデータコピーの問題の分析

不言
不言オリジナル
2018-09-04 13:46:342762ブラウズ

この記事は、ミニプログラムにおけるデータコピーの問題の分析を提供します。必要な方は参考にしていただければ幸いです。

最近、私は同僚が複数の製品のレビュー ページを作成するのを手伝いました。マルチ製品とは、その名前が示すように、各製品に星評価があり、写真情報とレビュー コンテンツがアップロードされていることを意味します。パブリック アカウントの機能を利用するため、ミニ プログラムで複数の製品レビューを書くことを志願しましたが、罠にはまりました...

アイデアは非常に簡単です。まず、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 形式に変換する

let starListc=JSON.stringify(starList);
for(let i = 0; i < response.commoditys.length; i++) {
               response.commoditys[i].starLista = JSON.parse(starListc);
  }
このようにして、変更は文字列である必要があります。元の配列を変更せずに、配列に値を割り当てる方法も考えましたが、この方法はこの方法ほど単純ではなく、午前中ずっと続いていたこの落とし穴について、記念として投稿したいと思います。自分自身に警告するために。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

関連する推奨事項:

MYSQLデータベースのバックアップとコピー_MySQL


JavaScriptの浅いコピーと深いコピーの詳細な説明

以上がミニプログラムにおけるデータコピーの問題の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。