You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用@emotion/styled构建Next.js组件时出现Server Error的问题排查与解决求助

问题分析与解决方案

我来帮你排查这个Server Error的问题,看了你的代码后,发现几个明确的错误点,这些都是导致服务端报错的常见原因:


1. CSS语法错误(最直接的报错原因)

在LogoBox的styled样式定义里,padding:10px后面漏掉了分号,这会导致CSS解析失败,服务端渲染时直接抛出语法错误:

// 错误写法
padding:10px
// 修正后
padding:10px;

2. 未定义的bold变量

你在Text组件中使用了fontWeight={bold},但这个bold变量既没有定义,也没有从Chakra UI导入。Chakra的fontWeight属性接受字符串(如'bold')或数字(如700),需要改成:

// 错误写法
fontWeight={bold}
// 修正后
fontWeight="bold"

3. Next.js Link组件的冗余标签(可选优化)

如果你的项目是Next.js 13+的App Router,Link组件不需要再包裹<a>标签,直接把内容放在Link内部即可;如果是Pages Router,虽然可以保留<a>,但官方更推荐直接用Link包裹内容,减少冗余代码。


修正后的完整代码

import Link from "next/link";
import Image from "next/image";
import { Text, useColorModeValue } from "@chakra-ui/react";
import { styled } from "@emotion/styled"

const LogoBox = styled.span`
  font-weight: bold;
  font-size: 18px;
  display: inline-flex;
  align-items:center;
  height: 30px;
  line-height:20px;
  padding:10px; /* 补上缺失的分号 */
  &:hover img {
    transform:rotate(20deg);
  }
`

const Logo = () => {
  const dragonImg = `/images/dragon${useColorModeValue('', '-dark')}.png`
  return (
    <Link href="/">
      <LogoBox>
        <Image src={dragonImg} width={20} height={20} alt="logo" />
        <Text 
          color={useColorModeValue('gray.800', 'whiteAlpha.900')} 
          fontFamily="M PLUS Rounded 1c" 
          fontWeight="bold" /* 替换未定义的bold变量 */
          ml={3}
        > pokmon</Text>
      </LogoBox>
    </Link>
  )
}

export default Logo;

额外小提示

如果你日常主要使用Chakra UI,其实可以直接用Chakra的Box组件配合sx属性实现样式,不需要额外引入Emotion,这样更贴合Chakra的生态:

import { Box } from "@chakra-ui/react";

// 用Chakra Box替代Emotion styled的写法
const LogoBox = (props) => (
  <Box
    as="span"
    fontWeight="bold"
    fontSize="18px"
    display="inline-flex"
    alignItems="center"
    height="30px"
    lineHeight="20px"
    padding="10px"
    _hover={{ img: { transform: 'rotate(20deg)' } }}
    {...props}
  />
)

内容的提问来源于stack exchange,提问作者Rohit Jambhulkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 20:27:41