如何解决Fork 一个子进程并将 react 组件作为 args
我们有自己的支持 SSR 的 React 框架。目前,如果我们向容器发出更多请求,可能会因为 renderToString 而出现延迟,以避免尝试将 fork
(nodejs 功能)renderToString
操作作为子进程。在这种情况下,无法在 send
方法中传递组件。如果我在 send
方法中传递一个组件,则在 childProcess 中将其作为对象接收。此外,组件将基于路由动态。有没有办法做到这一点?
ServerRender.jsx
const WrapperComponent = (
<RootApp
preloadedState={ ssrPreLoadState }
request={ { url: request.url} }
/>
);
const renderMarkup = fork(path.resolve(__dirname,'forkRenderToString'));
const forked = await new Promise(function(resolve) {
renderMarkup.send(WrapperComponent);
renderMarkup.once('message',(res) => {
resolve(res);
});
});
forkRenderToString.js
process.on('message',(Component) => {
console.log('Component',Component);
const children = renderToString(<Component />)
process.send(children);
});
错误详情
警告:React.createElement:类型无效——需要字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象。
错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。