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 }
ご不明な点があれば何なりとお申し付けください!
お力をお借りしたいです>< よろしくお願い致します!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。