[解決済み] 引数付きvuexjsゲッター
2022-01-31 10:47:41
質問
のゲッターにパラメータを渡す方法はありますか?
vuex
store
?
のようなものです。
new Vuex.Store({
getters: {
someMethod(arg){
// return data from store with query on args
}
}
})
コンポーネントで使用できるように
<template>
<div>
<p>{{someMethod(this.id)}}</p>
</div>
</template>
<script lang="ts">
import { mapGetters } from "vuex"
export default {
props: ['id'],
computed: mapGetters(['someMethod'])
}
}
</script>
しかし、vuex では最初の引数は
state
で、2番目は他の
getters
. 可能でしょうか?
どのように解決するのですか?
一つの方法として、次のようなことが考えられます。
new Vuex.Store({
getters: {
someMethod(state){
var self = this;
return function (args) {
// return data from store with query on args and self as this
};
}
}
})
しかし、getterは引数を取らないので、その理由は次のように説明されます。 スレッド :
ゲッターは状態をどのような形でも取得できることを示しますが、実際にはリデューサーです。
おそらく、リデューサーは純粋なメソッドであるべきでしょう。これはフィルタリングやマッピングなどに使うことができます。
ゲッターは、任意のコンテキストを与えることができます。computedと似ていますが、vuexのオプションでcomputed propsをgetterに結合できるようになりました。これは、コンポーネントの構造に役立ちます。
編集する。
同じことを達成するためのより良い方法は、ES6の矢印を使用することです。 ニブラム80 を使用する。 メソッド形式のゲッター ここで、ゲッターから関数を返すことで、パラメータを渡すことができます。
new Vuex.Store({
getters: {
someMethod: (state) => (id) => {
return state.things.find(thing => thing.id === id)
}
};
}
})
関連
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み] テスト
-
[解決済み】SyntaxError: ChromeのJavascriptコンソールでUnexpected Identifierが発生する。
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryで要素にスクロールする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする