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",
我正在尝试在我的 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",