【问题标题】:Server side rendering with create-inferno-app使用 create-inferno-app 进行服务器端渲染
【发布时间】:2018-07-23 22:41:15
【问题描述】:

我正在尝试设置 create-inferno-app 的服务器端实现。 所以,我最初运行 create-inferno-app 来创建一个示例项目并运行npm start run,一切看起来都很好。 这是我的index.js

import { render } from 'inferno';
import App from './App';
render(<App />, document.getElementById('root'));

这是App.js

import { renderToString } from 'inferno-server';
import './App.css';

const App = function({ color = 'red', name }) {
  return (
    <div style={{ color }}>
      Hello
      <span>{name}</span>
    </div>
  );
}
export default renderToString(<App color="blue" name="world" />)

我收到一个错误TypeError: type is not a function

那么我应该如何在 create-inferno-app 中使用renderToString 方法?

【问题讨论】:

    标签: javascript node.js reactjs infernojs


    【解决方案1】:

    这个import App from './App'; 正在从你的app.js 导入这个export default renderToString(&lt;App color="blue" name="world" /&gt;)

    你希望你的文件是这样的:

    index.js

    import { render } from 'inferno';
    import App from './App';
    render(<App />, document.getElementById('root'));
    

    app.js

    import './App.css';
    
    App = function({ color = 'red', name }) {
      return (
        <div style={{ color }}>
          Hello
          <span>{name}</span>
        </div>
      );
    }
    export default App
    

    server.js

    import { renderToString } from 'inferno-server';
    import App from './App';
    cosnt appAsString = renderToString(<App color="blue" name="world" />)
    

    【讨论】:

    • 我尝试了这个解决方案,但它抛出了错误,SyntaxError: Unexpected token import。我试过require,然后它显示SyntaxError: Unexpected token &lt;
    • SyntaxError: Unexpected token import 是你服务器上的 es6 有问题`
    • SyntaxError: Unexpected token &lt; 也很可能在您的服务器上出现 jsx 问题
    猜你喜欢
    • 2018-01-30
    • 2023-03-28
    • 2017-03-03
    • 2020-03-21
    • 2017-04-04
    • 2018-03-06
    • 2019-02-12
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多