Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从客户端创建交互式(附加React to)预渲染的React应用程序?_Javascript_Reactjs_Client_Prerender - Fatal编程技术网

Javascript 如何从客户端创建交互式(附加React to)预渲染的React应用程序?

Javascript 如何从客户端创建交互式(附加React to)预渲染的React应用程序?,javascript,reactjs,client,prerender,Javascript,Reactjs,Client,Prerender,我想向客户端显示一个预渲染的交互式应用程序(服务器只发送html) 我为一个测试创建了一个简单的react应用程序,只有一个按钮在按下时会显示一个警报对话框 然后我做了一个构建: npm run build 这在构建目录中创建了一个index.html文件,在打开时显示测试应用程序 这很好,但不是交互式的,所以我想我必须以某种方式附加React到它,并从客户端调用hydroge()。(这是正确的吗?水合物()在客户端也起作用吗?) 问题是我不知道应该如何调用hydrate() 这是正常调用

我想向客户端显示一个预渲染的交互式应用程序(服务器只发送html)

我为一个测试创建了一个简单的react应用程序,只有一个按钮在按下时会显示一个警报对话框

然后我做了一个构建:

  npm run build
这在构建目录中创建了一个index.html文件,在打开时显示测试应用程序

这很好,但不是交互式的,所以我想我必须以某种方式附加React到它,并从客户端调用hydroge()。(这是正确的吗?水合物()在客户端也起作用吗?)

问题是我不知道应该如何调用hydrate()

这是正常调用渲染的方式:

ReactDOM.render(<App />, document.getElementById('root'));
ReactDOM.render(,document.getElementById('root');
但是我不能在客户端使用hydroge(),因为客户端JS不知道
语法。因此,我的问题是如何在浏览器中调用水合物(),我应该为第一个参数而不是

ReactDOM.hydrate(,document.getElementById('root');

找到了解决方案,并将其留给其他人作为答案

根本不需要调用水合物(),一切都按原样工作。问题是生成的.js和.css文件在index.html中被引用,路径为
/static/…


修复路径后,它立即工作,生成的应用程序是交互式的,按下按钮时会显示警报对话框。

你不能在那里放点东西吗<代码>只能
。这正是ReactDOM将放在“根”元素上的组件。所以你可以把html。。。对吗?我试着把
'
放在那里,但是屏幕上的应用程序内容被替换为字符串
'
ReactDOM.hydrate(<App />, document.getElementById('root'));