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

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

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

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

Vuex

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

Q&A

解決済

1回答

2425閲覧

gettersをcomputedに渡すが、表示されません。

ff7575

総合スコア123

Nuxt.js

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

Vuex

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

0グッド

0クリップ

投稿2020/01/25 13:30

基本的なご質問になるかもしれませんが、試行錯誤しても解決できないため、皆様のお力をお貸ししていただけないでしょうか。

やりたいこと

stateの各値を合計するgettersを用意し、それをcomponents中のcomputedで呼び出して表示する。

できていること

・componentsの他のタグ要素は取り込んだpagesでもちゃんと表示される。
・stateの値自体はちゃんと{{}}の中にちゃんと表示される。
・エラー文、警告文は出ていない。

困りきっていること

gettersを返すcomputedの値だけが全く表示されない。

store.jsの中身です。

js

1export const state = () => ({ 2 cate_list:{ 3 dog:{count:0}, 4 cat:{count:1}, 5 bird:{count:1}, 6 lion:{count:0}, 7 rabbit:{count:1}, 8 human:{count:0} 9 }, 10}) 11export const getters = () => ({ 12 totalCategory : state =>{ 13 return state.cate_list.reduce((x,y) => x + y.count); 14 } 15})

そして、componentsのコードです。

vue

1<template> 2 <div> 3...... 4 <nuxt-link to="/" class="total"> 5 累計記事<span class="count"> ( {{total}} ) </span> 6 </nuxt-link> 7 </div> 8</template> 9<script> 10export default { 11 computed:{ 12 total(){ 13 return this.$store.getters.totalArticle; 14 } 15 } 16} 17</script>

文法的な間違いなのでしょうか。
初心者であるため、調べながらやっております。
そのため、「合っているはずなのに、」という偏見が脳内を埋め尽くして、間違いを見つけることができません。
お時間とらせて申し訳ないのですが、ご存知の方がいたら、ぜひ教えていただけないでしょうか。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

javascript

1export const getters = () => ({ 2 totalCategory : () => { // state を引数には不要? 3 return state.cate_list.reduce((x,y) => x + y.count); 4 } 5})

vue

1total() { 2 return this.$store.getters.totalCategory(); // totalArticleではない? ()がないので関数呼び出しできていない? 3}

ではないでしょうか?

投稿2020/01/25 19:18

編集2020/01/25 19:19
unhappychoice

総合スコア1531

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

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

ff7575

2020/01/25 20:11 編集

ご回答本当にありがとうございます。 ご指摘のあった箇所を全て修正させていただきましたが、 どうしてもthis.$store.getters.totalCategory is not a functionと出てしまいます。 どうやら、カッコを付け足すと、この警告がでるようでして、 逆にカッコをつけないと警告は出ないのですが、値が表示されません。 重ね重ね申し訳ありません。自分でもさらに探してみますので、他に何かお分かりになることがありましたら、 またご指摘いただけないでしょうか。 ご回答大変ありがとうございました。
ff7575

2020/05/09 21:19

回答ありがとうございました。 自己解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問