Рендеринг на стороне сервера с помощью create-inferno-app

Я пытаюсь настроить реализацию 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

Так как я должен использовать renderToString метод в создании-инферно-приложение?

1 ответ

Это import App from './App'; импортирует это export default renderToString(<App color="blue" name="world" />) из вашего app.js.

Вы хотите, чтобы ваши файлы были такими:

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" />)
Другие вопросы по тегам