Next.js 14中使用useState报错?async组件问题求助
问题原因及解决办法
核心原因:你把客户端组件声明成了
async函数——哪怕内部没写await,Next.js也会将其判定为异步组件。Next.js 14的App Router对客户端组件的规则做了更严格的校验,明确禁止客户端组件使用async声明;而你之前用的Next.js 13版本规则没这么严苛,所以没触发报错。解决办法:直接去掉组件函数的
async关键字,改成普通同步函数即可。比如把:async function Page() { // useState和useEffect相关代码 }修改为:
function Page() { // useState和useEffect相关代码 }
补充说明:在Next.js App Router体系中,只有服务器组件可以声明为async函数用于数据获取,客户端组件必须是同步函数。
内容的提问来源于stack exchange,提问作者Bruno Alencar Vieira de Rezend
相关产品推荐
相关产品推荐

