2017-12-06 14 views
0

v-modelで区切られた選択入力に初期値を渡そうとしています。私はこれが動作しない理由を把握することはできません。Vue.jsは、初期値propを使用してv-model入力をバインドします。

props: ['team'], 
data() { 
    form: { 
     data: { 
      country: this.team.country 
     } 
    } 
} 

form.data.countryundefinedです。しかし、小道具のデータは実際に渡されます。私はVue Devtoolsのようにのようにアクセスすることができ、私は小道具から他のデータを印刷することができます。ただし、data()に登録されていません。

また、mounted()を使用してデバッグしようとすると、プロパティーteamは定義されません。

mounted() { 
    console.log(this.team); 
} 

しかし、私は先に述べたように、それは、テンプレートがレンダリングされるときに定義されており、このように使用することができます。

私が渡しているプロパティがなぜdata()に認識されないのですか?

+0

データ関数からオブジェクトを返すのを忘れましたか? – Bert

+0

いいえ、私はオブジェクトを返します。リターン{ 形式:{ isLoading:偽、 データ:{ 国:this.team.country }} } – Fredrik

+1

はteam'が非同期に作成 'ですか?あなたは 'v-model'で結ばれた初期値を言った。あなたはそれをどのようにしているかを示すことができますか?実際の例があると便利です。 – Bert

答えて

0

親データによって小文字データがロードされました。これは@Bertによるコメントで提案されました

-1

非同期ロードは問題ではありません。上記のチームがハードコーディングされていても、コンポーネントにデータが作成されるときはit's still undefinedとなります。 (コンポーネントは、小道を通過するルートVueの前に作成する必要があります)

おそらく誰かが私を修正しますあなたのデータの小道具を参照するために決して良い理由はありません。何かが、それは小道具または(それが望んでいるものを見つけるために、現在のコンポーネントが知っている)は、どちらかのデータは、(コンポーネントは、それが情報を提供するコンテキストのようになる)です。

あなたが発見したように、あなたのデータは一度作成されます。 Vueはすべての変更を監視しますが、ルート値の変更に対して脆弱です。データが作成されたときに値として参照されるものが変更された場合、反応パイプは破損しています。これに対する答えはstore patternです。たとえ内容が変わっても、置き換えられないグローバルスコープの変数を監視します。

code 
+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](レビュー/低品質の投稿/ 18220708) –

+0

「この[質問]への答えは店舗パターンを使用する」 – bbsimonbb

関連する問題