前提・実現したいこと
v-modelを使って子コンポーネントにオブジェクトを渡してフォームを作りたい
発生している問題・エラーメッセージ
propsとして子に渡っているが、inputと連動しない
該当のソースコード
親コンポーネントがApp.vueで子コンポーネントがForm.vueです。
以下App.vueです
<template> <Form v-model:auth="state" /> </template> <script> import Form from "./components/Form.vue"; import { reactive } from "vue"; export default { name: "App", setup() { const state = reactive({ email: "email", password: "password", }); return { state }; }, components: { Form, }, }; </script>
以下Form.vueです
<template> <p>email: {{ auth.email }}</p> <p>password: {{ auth.password }}</p> <input type="email" @input="inputEmail" :value="auth.email" /><br/> <input type="password" @input="inputPassword" :value="auth.password" /> </template> <script> export default { props: { auth: Object, }, setup(props, { emit }) { console.log(props.auth); const inputEmail = e => { emit("update:auth.email", e.target.value); }; const inputPassword = e => { emit("update:auth.password", e.target.value); }; return { inputEmail, inputPassword } }, }; </script>
試したこと
refにして2つに分ければできました。console.logでは値が確認できるので
emitのところに問題があると思っています
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/04 19:14