In version 1.0.0 when messages are called on the server useStore hook returns the object populated with default values. In version 1.0.1 it returns undefined.
'use client';
const NavigationPanel = (): React.ReactNode => {
const t = useStore($messages); // undefined during initial server-side render
// ...
}
// this example uses `@nanostores/i18n` but the issue is universal to any nanostores atom
export const $messages = i18n('root/nav', {
title: 'Title'
});
Current behavior breaks all pre-rendering. next@16.0.10
Uncaught Error: Switched to client rendering because the server rendering errored:
Cannot read properties of undefined (reading 'title')
react-dom-client.development.js:11329:17
updateSuspenseComponent react-dom-client.development.js:11329
beginWork react-dom-client.development.js:12449
runWithFiberInDEV react-dom-client.development.js:987
performUnitOfWork react-dom-client.development.js:18995
workLoopSync react-dom-client.development.js:18823
renderRootSync react-dom-client.development.js:18804
performWorkOnRoot react-dom-client.development.js:17833
performWorkOnRootViaSchedulerTask react-dom-client.development.js:20382
performWorkUntilDeadline scheduler.development.js:45
(Async: EventHandlerNonNull)
<anonymous> scheduler.development.js:223
<anonymous> scheduler.development.js:364
instantiateModule dev-base.ts:244
runModuleExecutionHooks dev-base.ts:278
instantiateModule dev-base.ts:238
getOrInstantiateModuleFromParent dev-base.ts:162
commonJsRequire runtime-utils.ts:389
<anonymous> index.js:6
instantiateModule dev-base.ts:244
runModuleExecutionHooks dev-base.ts:278
instantiateModule dev-base.ts:238
getOrInstantiateModuleFromParent dev-base.ts:162
commonJsRequire runtime-utils.ts:389
<anonymous> react-dom-client.development.js:26276
<anonymous> react-dom-client.development.js:30584
instantiateModule dev-base.ts:244
runModuleExecutionHooks dev-base.ts:278
instantiateModule dev-base.ts:238
getOrInstantiateModuleFromParent dev-base.ts:162
commonJsRequire runtime-utils.ts:389
<anonymous> client.js:37
instantiateModule dev-base.ts:244
runModuleExecutionHooks dev-base.ts:278
instantiateModule dev-base.ts:238
getOrInstantiateModuleFromParent dev-base.ts:162
commonJsRequire runtime-utils.ts:389
<anonymous> app-index.tsx:2
instantiateModule dev-base.ts:244
runModuleExecutionHooks dev-base.ts:278
instantiateModule dev-base.ts:238
getOrInstantiateModuleFromParent dev-base.ts:162
commonJsRequire runtime-utils.ts:389
<anonymous> app-next-turbopack.ts:11
appBootstrap app-bootstrap.ts:79
loadScriptsInSequence app-bootstrap.ts:23
appBootstrap app-bootstrap.ts:61
<anonymous> app-next-turbopack.ts:10
instantiateModule dev-base.ts:244
runModuleExecutionHooks dev-base.ts:278
instantiateModule dev-base.ts:238
getOrInstantiateRuntimeModule dev-base.ts:128
registerChunk runtime-backend-dom.ts:57
AsyncFunctionNext self-hosted:780
(Async: async)
registerChunk dev-base.ts:1149
forEach self-hosted:145
NextJS 2
In version
1.0.0when messages are called on the serveruseStorehook returns the object populated with default values. In version1.0.1it returnsundefined.Current behavior breaks all pre-rendering.
next@16.0.10