isLoading should default to true even when doing SSR #193
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I originally thought
isLoading
should initialize asfalse
when doing SSR, the logic being that the SDK will never start loading during SSR soisLoading
didn't make sense to betrue
However, the output of SSR rendering is rendered on the client, to be hydrated, so a client will expect it to be initialised as
true
. If it'sfalse
, then immediately hydrated astrue
you getWarning: Expected server HTML to contain a matching <div> in <div>.
because it's been rendered in a different state that theReactDom.hydrate
is expecting.Whilst this will change initial rendering behaviour, it shouldn't break anyone - just remove the warning.
References
fixes #182
Testing
I've changed the SSR tests to use
ReactDOMServer.renderToString
rather thanrenderHook
becauserenderHook
still expects to be called in a jsdom environment.Checklist
master