質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

1008閲覧

TypeScript Nuxt.js v-modelでフォームの値を取得したい

pokerStars

総合スコア67

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/07/25 12:22

編集2020/07/28 11:21

Nuxt

1<template> 2 <section class="container"> 3 <h1>Todo App</h1> 4 <p> 5 <input type="text" name="content" v-model="content" /> 6 </p> 7 <div> 8 <button @click="insert">保存</button> 9 </div> 10 <ul> 11 <li v-for="(todo, index) in this.$store.state.todo.todos" :key="index"> 12 <span>{{ todo.content }}</span> 13 <button @click="remove(todo)">削除</button> 14 <button @click="edit(index)">編集</button> 15 <p> 16 <input type="text" name="editForm" v-model="editForm" /> 17 </p> 18 </li> 19 </ul> 20 </section> 21</template> 22 23 24 25<script lang="ts"> 26import { Component, Emit, Prop, Vue, Watch } from 'nuxt-property-decorator'; 27export default class index extends Vue { 28 @Prop() public content!: string; ////public content: string = '';もやってみた 29 30 @Prop() public editForm!: string; 31 32 public insert(): void { 33 this.$store.commit('insert', { content: this.content });//ここで受け取りたい 34 //値を空にする 35 this.content = ''; 36 } 37 38 public remove(todo: any): void { 39 return this.$store.commit('remove', todo); 40 } 41 42 public edit(index: any): void { 43 this.$store.commit('edit', { editForm: this.editForm, index }); 44 this.editForm = ''; 45 } 46} 47</script> 48

v-model="content"を取得しようとするとCannot read property '$store' of nullといったエラーが発生してしまいます。
Typescriptを使って書きたいと思っているのですが、うまく行きません。
v-model="content"のみ上手くいかず、v-model="editForm"は正常に動きます。

・やってみたこと
0. get,setを使う
0. 下記のjsの書き方だと正常にv-modelの取得はできるが今回はTypescriptを使ったやり方をしたい

Nuxt

1export default { 2methods: { 3 insert: function() { 4 this.$store.commit('insert', {content: this.content}); 5 this.content = ''; 6 } 7 }

ご不明な点があれば何なりとお申し付けください!
お力をお借りしたいです>< よろしくお願い致します!

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

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

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

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

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

guest

回答1

0

自己解決

Nuxt

1<button @click="insert">保存</button> 2 34 5<button @click="insert()">保存</button> 6 7に変更したらできた

投稿2020/07/28 11:38

pokerStars

総合スコア67

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問