ReactDOMServer.renderToString在服务器渲染中无权访问web-api

我有一个用react.js编写的应用程序,我在其中使用服务器端渲染。 这是我的服务器端。 server.js

import React from 'react';
import ReactDOMServer from 'react-dom/server';
import App from './src/App';

const express = require('express');
const path = require('path');
const app = express();

app.use(express.static(path.join(__dirname,'public')));
app.set('view engine','ejs'); 

const data= ReactDOMServer.renderToString(<App />);

app.get('/',(req,res)=>{
    res.render(path.resolve('./views/index.ejs'),{data})
});


app.listen(process.env.PORT || 3000,()=>console.log('server listen to port 3000'));

这是App.js,我在其中使用alert('SSR')

import React from 'react';

function App() {
    alert('SSR')
    return (
        <div>
            <h1>Hello World !</h1>
        </div>
    )
}

export default App;

节点向我显示错误ReferenceError:未定义警报

C:\Users\mher.garanyan\Desktop\SSR\node_modules\react-dom\cjs\react-dom-server.node.development.js:3555
            throw err;
            ^

ReferenceError: alert is not defined
    at App (C:\Users\mher.garanyan\Desktop\SSR\src/App.js:4:5)
    at processChild (C:\Users\mher.garanyan\Desktop\SSR\node_modules\react-dom\cjs\react-dom-server.node.development.js:3204:14)
    at resolve (C:\Users\mher.garanyan\Desktop\SSR\node_modules\react-dom\cjs\react-dom-server.node.development.js:3124:5)
    at ReactDOMServerRenderer.render (C:\Users\mher.garanyan\Desktop\SSR\node_modules\react-dom\cjs\react-dom-server.node.development.js:3598:22)
    at ReactDOMServerRenderer.read (C:\Users\mher.garanyan\Desktop\SSR\node_modules\react-dom\cjs\react-dom-server.node.development.js:3536:29)
    at Object.renderToString (C:\Users\mher.garanyan\Desktop\SSR\node_modules\react-dom\cjs\react-dom-server.node.development.js:4245:27)
    at Object.<anonymous> (C:\Users\mher.garanyan\Desktop\SSR/server.js:12:28)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Module._compile (C:\Users\mher.garanyan\Desktop\SSR\node_modules\pirates\lib\index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
[nodemon] app crashed - waiting for file changes before starting...

请告诉我如何解决错误。

solabc 回答:ReactDOMServer.renderToString在服务器渲染中无权访问web-api

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2970034.html

大家都在问