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

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

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

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

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

Q&A

0回答

724閲覧

vuexのファイル間のやりとりがうまくいかない

amateur1

総合スコア2

Vue.js

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

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

0グッド

0クリップ

投稿2020/07/20 07:10

前提・実現したいこと

vue.js入門を使っています。

ここに質問の内容を詳しく書いてください。
vuexを用いて、アプリを作成しようとしたのですが、ファイル間のやりとりがうまくいっていないようで、エラーが出てしまいます。

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

warn]: Error in render: "TypeError: Cannot read property 'state' of undefined" found in ---> <App> at App.vue <Root>

該当のソースコード

App.vue

<template> <div> <h2>タスク一覧</h2> <ul> <li v-for="task in tasks" v-bind:key="task.id"> <input type="checkbox" v-bind:checked="task.done"> {{ task.name }} </li> </ul> </div> </template> <script> export default{ name: 'App', computed: { tasks() { console.log(this.$store) return this.$store.state.tasks }, }, } </script>

main.js

import Vue from 'vue' import App from './App.vue' import store from './store' new Vue({ el: '#app', store, render: h => h(App) })

store.js

import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state:{ tasks:[ { id: 1, name: '牛乳を買う', labelIds: [1,2], done: false }, { id: 2, name: 'Vue.jsの本を買う', labelIds: [1,3], done: true } ], }, }) export default store

試したこと

this.$storeがundefinedであることは確認しました。
ファイル同士のやり取りがうまくいっていないことが原因だと考えています。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

rubytomato

2020/07/21 10:16

store.jsをindex.jsにリネームしたらどうなりますか?
oec

2020/09/09 18:03

すみません、全部コピペして動かしてみたらエラー吐かずに動いてしまいました… store.jsはmain.jsと同じ階層でしたら、main.jsのインポート時にちゃんと指定すれば問題なく動きました ×import store from './store' 〇import store from './store.js'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問