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

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

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

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

Nuxt.js

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

Vuex

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

Q&A

解決済

1回答

2191閲覧

Nuxt.js 外部ファイルからVuexのStore.gettersにアクセスしたい

rihako

総合スコア4

Vue.js

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

Nuxt.js

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

Vuex

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

0グッド

0クリップ

投稿2021/04/10 06:05

前提・やりたいこと

vueファイル内ではなく外部のjsファイル内でstoreにアクセスしてデータを取得したいです。
具体的には、storeファイル内にある、現在開いているページのslugと同じファイル名のglbファイルのパスをcurrentModelとしてasync fetch処理で保存しているので、それを外部のJSファイル内で取得しようとしています。

この外部JSはvueファイル内のCanvasで使っています。

JavaScript

1import * as THREE from "three"; 2import GLTFLoader from 'three-gltf-loader'; 3import {store} from '/store/index.js' 4 5main() { 6//省略 7 { 8 const gltfLoader = new GLTFLoader(); 9 const model = store.getters.getCurrentModel(); 10 11 gltfLoader.load( Model, (data) => { 12 const gltf = data; 13 const obj = gltf.scene; 14 scene.add(obj); 15 }); 16 } 17//省略 18} 19

こちらはsrore/index.js の記述です。

import Vuex from 'vuex'; const store = () => new Vuex.Store({ state: { currentModel: null, }, getters: { getCurrentModel: (state) => { return state.currentModel; }, }, mutations: { saveCurrentModel(state, currentModel){ state.currentModel = currentModel; }, } }) export default store

するとこのようなエラーが出ます。

TypeError: _store_index_js__WEBPACK_IMPORTED_MODULE_7__.store is undefined

このエラーに詳しい方がいらっしゃいましたら、何が原因かご教授いただけると幸いです。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

自己解決

vueファイル以外の外部ファイルでstoreのデータを取得するためには、モジュールモードにしてないといけないらしく、修正して、また新しく質問を投稿しましたので、こちらでお願い致します。

https://teratail.com/questions/332666

投稿2021/04/11 07:10

rihako

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問