2016-04-15 14 views
0

サーバーは認証されていないユーザーのWebアプリケーションのバージョンをレンダリングするため、このエラーが発生します。これはUI要素の一部が存在しないことを意味します。クライアント側はローカルに格納されたユーザートークンを取得し、自動認証が行われ、クライアント側でわずかに異なるDOMがレンダリングされます。論理はOKですよね?しかし、どのように私はこのエラーをポップアップを停止させるのですか?サーバはそれらを読んで、そこに認証を処理できるようReactJS:チェックサムが無効

React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server: 
(client) d=".c4gd6urcw.2.0"><noscript data-reacti 
(server) d=".c4gd6urcw.2.0"><div data-reactid=".c 

答えて

0

あなたはトークンを保存するためにクッキーを使用することができます。または、LocalStorageに保存するように設定されている場合は、ログインを処理するイニシャルの後にセカンダリレンダーをトリガーする限り、Reactを満たす必要があります。警告は、チェックサムが一致しないため、アプリケーション全体を再レンダリングする必要があるということです。多分このような何か?

最初のクライアントのレンダリングを、サーバーが最初に送信したものと一致させるだけです。認証を新しいプロセスに投げ入れると、最初のチェックサムが一致し、その後は基本的なReact rerenderingになります。