React-Select V2.0 与 Next.JS

React-Select V2.0 with Next.JS

我正在尝试将 React-Select V2.0 与 Next.JS 一起使用,但在服务器加载时,select 元素未设置样式并闪烁以设置样式。

我尝试使用 Next.JS 的情感示例来服务器呈现情感风格 (https://github.com/zeit/next.js/tree/master/examples/with-emotion),但它似乎与我使用的 Styled-JSX 冲突,我收到错误 StyleSheet: insertRule accepts only strings.

我尝试使用此处显示的 Emotion babel 配置选项:https://github.com/emotion-js/emotion/blob/master/docs/configurable-imports.md#babel-options

但这会导致整个页面呈现为未设置样式,然后闪烁以设置样式。

有谁知道如何在 Next.JS 上使用 React-Select V2 进行服务器渲染?

谢谢。

使用 Next.js 的 React-Select v2.0 渲染闪烁的解决方案是仅使用 react-no-ssr

在客户端渲染组件

我目前使用 Next.js dynamic component loading without ssr 是这样的:

const Select = dynamic(
  () => import('react-select').then((mod) => mod.default),
  {
    ssr: false,
    loading: () => null,
  },
);

照常使用select组件

与此处的其他答案类似,我使它正常工作的唯一方法是使用动态导入。我鼓励您提供某种加载指示器。

const ReactSelectNoSSR = dynamic(() => import('../components/select'), {
    loading: () => <Input />,
    ssr: false
});

如果您需要使用 Jest 测试此组件,here's how 您会这样做。希望这有帮助。