next.js 将React.Context与Nextjs13服务器端组件一起使用

dpiehjr4  于 2022-11-05  发布在  React
关注(0)|答案(2)|浏览(421)

Next13是一周前发布的,我正在尝试将一个Next12应用程序迁移到一个Next13。

import { createContext } from 'react';

在任何服务器组件中。
我收到此错误:

Server Error
Error: 

You're importing a component that needs createContext. It only works in a Client Component but none of its parents are marked with "use client", so they're Server Components by default.

   ,----
 1 | import { createContext } from 'react';
   :          ^^^^^^^^^^^^^
   `----

Maybe one of these should be marked as a client entry with "use client":

这里有没有其他的选择,或者我必须求助于道具钻取来获得服务器端渲染?

tv6aics1

tv6aics11#

我好像可以用createServerContext

import { createServerContext } from 'react';
unftdfkk

unftdfkk2#

这是React的SSR的一个新特性,用于识别组件是客户端还是服务器端。
如果您只在客户端使用此组件,则可以在此组件的顶部定义'use client';

'use client';

import { createContext } from 'react';

您可以查看此Next.js文档和this React RFC以了解详细信息

相关问题