renderStatic 的头盔错误

Helmet errors with renderStatic

我正在尝试在我的 meteor 应用程序中使用 SSR 设置 Helmet npm,但出现错误,Error running template: TypeError: Cannot read property 'renderStatic' of undefined at sink。我是使用 SSR 的新手,所以我没有关注我在这里遗漏的内容。非常没有问题。

路径:server/main.js

import React from "react";
import PropTypes from 'prop-types';
import { onPageLoad } from "meteor/server-render";
import { renderToNodeStream } from "react-dom/server";
import { ServerStyleSheet } from "styled-components"
import { Helmet } from 'react-helmet';  

import App from "/imports/server/app/App";

onPageLoad(sink => {
  const sheet = new ServerStyleSheet();
  const appJSX = sheet.collectStyles(
    <App location={sink.request.url} />
  );

  App.propTypes = {
    location: PropTypes.object,
  };


  const htmlStream = sheet.interleaveWithNodeStream(
    renderToNodeStream(appJSX)
    );

  sink.renderIntoElementById("react-root-app", htmlStream);

  const helmet = Helmet.renderStatic();
  sink.appendToHead(helmet.meta.toString());
  sink.appendToHead(helmet.title.toString());

});

由于头盔是默认导出的,因此您需要像这样导入它

  import Helmet from 'react-helmet';  

但不是

  import { Helmet } from 'react-helmet';  

但是,最新版本没有默认导入。

你必须这样导入。

import { Helmet } from 'react-helmet';  

这是根据版本

"react-helmet": "^6.0.0",