アプレットのピッカーデータはオブジェクト配列です

hzc
リリース: 2020-06-16 10:34:41
転載
3249 人が閲覧しました

ピッカー コンポーネントを操作するときに、なぜレンダリングの問題が発生するのか、または単に中国語の値を取得したいだけなのかという疑問が生じるかもしれません。

ビュー層

<view>数据是json的,直接展示</view>
picker使用说明:

<picker 
    mode="selector" 
    range-key="valuess" 
    range=&#39;{{school}}&#39; 
    model:value="{{currentSchool}}" 
    bindchange="handleChange"
>
  当前选择 {{school[currentSchool].valuess}}
  
</picker>
ログイン後にコピー

ロジック層

page({
    data: {
        school: [
            {"isNewRecord":false,"id":"2","keyss":"school","valuess":"湖南小学"},
            {"isNewRecord":false,"id":"3","keyss":"school","valuess":"北京小学"}
        ],
        currentSchool: ""
    }
    handleChange(e) {
        console.log(e)
        // 如果 range是一个 Object Array形式的,那这里的value就是索引下标
        let currentVal = e.detail.value
    
        // 对应的中文是
        let text = this.data.school[currentVal].valuess
        console.log(&#39;中文-->&#39;, text)
    },
})
ログイン後にコピー

ここで、渡すのは配列オブジェクトの Object Array 型であるため、ピッカー コンポーネントを使用するときは、 、これらのフィールドの意味と値の取得方法

range-key は、レンダリング時に値を取得するためにどのフィールドが使用されるかを示します。以下は指定されていない場合です。単純なデータ構造

類似: 学校: ["中国語"、"数学"、"音楽"]

を指定する必要はありません。複雑なデータ構造の場合、フィールドを指定すると、WeChat が自動的に値を割り当てます

アプレットのピッカーデータはオブジェクト配列です著者: Zhiqingyu

model:value="{{currentSchool}}" これを見つけるかもしれません。なぜモデルが value の前にバインドされているのですか。

WeChat はバインドされていないからです。双方向のデータ バインディング。単純に value="{{現在選択されているインデックスのサブスクリプト-currentSchool}}"

と記述する場合、論理レイヤーの currentSchool は変更されず、データは bindingchange イベントを通じて変更する必要があります。次のようなデータが入力されます。

handleChange(e) {
    this.setData({
       currentSchool: e.detail.value
    })
}
ログイン後にコピー

モデルを使用する利点は、割り当て操作を行う必要がないことです。右上隅の [OK] をクリックする限り、データ内の currentSchool は「キャンセル」をクリックしても更新されません。data 内のデータの

アプレットのピッカーデータはオブジェクト配列です

は、handleChange の e.detail.value から取得した値です。実際、 text text

上記と同様に、インデックスを使用してソース データ内の {} オブジェクト属性を取得します。

また、 school--schoolFilter を [ に変更するという共通の操作もあります。 「湖南小学校」、「北京小学校」] この単純な構造では、e.detail.value は中国語を取得します

ただし、この要件の場合、データ schoolFilter には 2 つの配列があります -- 配列タイプと学校--Object Array type 、ピッカーで range = "{{schoolFilter}}" を使用します。

次に、ソース データの他の属性を取得するには、学校を走査して値を取得する必要があります。

概要

  • データを変更するためにbindchangeを記述したくない場合は、model:

  • pickerを使用してください。開始タグと終了タグのパッケージは今後のコンテンツを選択するだけです。テキスト レンダリングや {{content}} レンダリング、ビュー レンダリングや入力レンダリングを使用して自由に整理できます。オブジェクト配列内の他のフィールドを取得します。データをフィルタリングしたくない場合は、オブジェクト配列を使用してください。この構造には、インデックス取得を通じてアクセスできます。データ内に 2 つのフィールドを構築する必要はありません。

  • ピッカーに表示される[OK]ボタンをクリックするだけで、ピッカー内のデータが更新されます。

  • # 推奨チュートリアル: 「

    WeChat Mini」プログラム###"###

以上がアプレットのピッカーデータはオブジェクト配列ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート