🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2346閲覧

inputFormにテキストを入力するとCannot read property 'value' of undefinedというエラーが出ます。

kendo1251

総合スコア16

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/10/08 13:54

vue-bootstrapを使用しています。
事象は題名の通りです。
知見のある方助けていただけると幸いです。

子コンポーネント

<template> <div> <b-form-group> <b-form-input :type="type" :name="name" :value="value" :placeholder="placeholder" @input="updateValue" ></b-form-input> </b-form-group> </div> </template> <script> export default { name: "InputText", props: { value: {type: String, require: true}, type: { type: String, require: true }, name: { type: String, require: true }, placeholder: { type: String, require: false } }, methods: { updateValue: function(e) { this.$emit("input", e.target.value) } } } </script> <style> </style>

親コンポーネント

<template> <div> <b-card> <b-form :model="signInForm"> <InputText v-model="signInForm.loginId" placeholder="Login ID" name="loginId" type="text" /> <InputText v-model="signInForm.password" placeholder="password" name="password" type="text" /> <Button @on_click="onSubmit" name="signIn" buttonText="SignIn"/> </b-form> </b-card> </div> </template> <script> import api from "../../utils/Client.js" import InputText from "../atoms/InputText" import Button from "../atoms/Button" export default { name: "SignIn", data() { return { signInForm: { loginId: "", password: "" } }; }, methods: { updateValue() { }, onSubmit() { console.log(this.signInForm) api.signIn(this.signInForm) } }, components: { InputText: InputText, Button: Button } }; </script> <style> </style>

エラー文

Error in v-on handler: "TypeError: Cannot read property 'value' of undefined" found in ---> <BFormInput> <BFormGroup> <InputText> at src/components/atoms/InputText.vue <SignIn> at src/components/pages/SignIn.vue <App> at src/App.vue <Root>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

カスタムコンポーネントで,v-modelを使う場合$event.target.valueではなく,$eventを使います (参考: コンポーネントの基本 — Vue.js)。

つまり,以下のように直せばOKです。

methods: { updateValue: function(e) { // this.$emit("input", e.target.value) this.$emit("input", e) } }

投稿2021/02/13 03:13

senooken

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問