SSR時にRecoil version 0.0.8だとwindow is not definedのエラーになる

SSR 時に Recoil バージョン 0.0.8 だとwindow is not definedのエラーになる。 解決策は version 0.0.9 が出るまでは 0.0.7 を使う必要があります。

Problem Recoil 0.0.8

【更新】すでに解決済みです!

2020年6月18日にRecoil バージョン 0.0.10がリリースされて、解決しました。

問題点

NextJS や Gatsby など SSR を利用しているアプリケーションで、Recoil のバージョン 0.0.8 を使っていると以下のようなエラーがサーバー側で発生します。

ReferenceError: window is not defined
    at Object.<anonymous> (C:\home\pjs\file-translate\node_modules\recoil\dist\recoil.development.js:591:3)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)

解決策

無理やり解決してしまう方法も提案されていますが、開発チームもすでに認識済みになります。

そのため、バージョンを 0.0.7 に落として、バージョン 0.0.9 が出てくるのを待つのがよいと思います。 特定の、さらに修正の見込みがある不具合に対して、ソースコードを修正してしまうのはコストが高いからです。

Recoil は非常に便利なので、早く安定してほしいところです。 Recoil については下記の記事が詳しいです。

Updated at: Fri Jun 26 2020

© 2020-presentTerms|Privacy