鈴木颯介のブログスマートフォン用の表示で見る鈴木颯介のブログ技術的なメモとかポエムとか。2018-11-28InversifyJSでMobXのStoreに注入しますFrozenエディタを開発するにあたって、localStorageとIndexedDBを扱う関数をMobXのStoreから叩いていたけど、テストが書きにくい。最近バイトでInversifyJSを使ってサーバーサイドの開発をやっているので、ここでも使ってみたい。ServiceとそのMock、Interfaceを定義する今回はとりあえずLocalStorageServiceを作りたい。その人がFrozenにアクセスしたのが初めてかどうかという情報をIS_FIRST_ACCESSというキーを使ってlocalStorageで管理ているので、そんな感じで書く。Symbol.for("LocalStorageService")};ここは普通にInversifyJSを使うのと何も変わらない。本当はMockもちゃんと作ってあげるべきなのだけどここではとりあえずdoNothingで、、、。Containerを作るここでinversify-inject-decoratorsという別のライブラリを使う。このライブラリを使うことで本来コンストラクタインジェクションができないような、別のライブラリ(ReactやMobXなの)が作るクラスのインスタンスに対してもコンストラクタインジェクションができるようになるらしい。.to(LocalStorageService);}こんな感じで環境に合わせてバインドするサービスを変えて、getDecoratorsにcontainerを食わせた結果のlazyInjectというやつをexportしてやる。Storeで使うInversifyJSの通常のinjectと同様にデコレータとして使って注入する。*/}感想inversify-inject-decoratorの挙動が全然わかっていないので雰囲気で使っていてよくないので、何をしてくれるライブラリなのかをしっかり把握しておきたい、、、。あとこの記事にあるコードはFrozenのソースから抜いてきて補完のない場所で改変して載せてるので、ミスっている場合があります。»プロフィールid:tako_programing技術的なメモや、僕の気持ちです。夏休みの目標はあまり達成できなかった月別アーカイブはてなブログをはじめよう!tako_programingさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。