我从服务器响应中得到了这个html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<div id="root" style="overflow-x: hidden; width: 100%; margin: 0;">
<h1>HELLO WORLD</h1>
<script src="/client_bundle.js" type="text/javascript"></script>
<script type="text/javascript">
window.__INITIAL_DATA__ = {"msg":"Hello this is a test"};
</script>
</body>
</html>
这是我的 client.tsx ,该文件被编译为 client_bundle.js ,该文件已导入上述html中。
const {存储,持久性} = configureStore(preloadedState);
ReactDOM.hydrate(
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>, document.querySelector('#root')
);
// This is undefined!!!!
console.log("window.__INITIAL_DATA__", (window as any).__INITIAL_DATA__)
奇怪的是,如果使用浏览器的开发工具, INITIAL_DATA 确实存在: