厳密に書くと親が持っているプロパティを子でpropsとして受け取り、そのpropsの値を子側で処理した後、再度その親のプロパティに返してあげたいです。
$emit
を使用すると子から親に値を渡せるとのことですが、親のプロパティを変化させる方法がいまいち分からないです。
以下の様にcategoriesという値(配列)を子に渡すとします。
このcategoriesに子のメソッド内でthis.categories.push(id: 3, name: "hoge" })
という形で配列の長さを変更し、それを親のcategoriesに戻すといった処理を行いたいのですが、
emitを含めどの様に親と子コンポーネントで記載すれば良いか分かりません。
//parent <template> <v-app id="edit"> <Search :categories="categories"></Search> </v-app> </template> <script> export default{ data: function() { return{ categories: [], // <=この値を子から変化させたい } }, components: { Search }, mounted: function() { axios .get('http://localhost:3000//users/'+ id +'/edit.json') .then((response) => { response.data.categories.forEach((value) => { this.categories.push({ id: value.id, name:value.name }) } ); } } </script>
//chiled(dom部分省略) props: { categories: [], }, methods: { select(){ /*ここで配列の長さを変更したものを親のdata:categoriesに返す(反映)させたい this.categories.push(id: 3, name: "hoge" }) */ } }
どの様な処理を加えれば上記を実現できるでしょうか?
ご回答いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/01 17:37