首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >情感CSS支持和Nextjs新的JSX运行时错误:当运行时是自动的,不能设置pragma和pragmaFrag。

情感CSS支持和Nextjs新的JSX运行时错误:当运行时是自动的,不能设置pragma和pragmaFrag。
EN

Stack Overflow用户
提问于 2021-04-06 09:10:10
回答 3查看 11.4K关注 0票数 19

在文档后面的Nextjs10.1中,我尝试使用CSSPropofEmotion11和Nextjs10.1,.babelrc文件如下:

代码语言:javascript
复制
{
  "presets": [
    [
      "next/babel",
      {
        "preset-react": {
          "runtime": "automatic",
          "importSource": "@emotion/react"
        }
      }
    ]
  ],
  "plugins": ["@emotion/babel-plugin"]
}

我的下一页:

代码语言:javascript
复制
/** @jsx jsx */
import { css, jsx } from '@emotion/react'

export default function testPage() {
  const color = 'darkgreen'
  return (<div
    css={css`
      background-color: hotpink;
      &:hover {
        color: ${color};
      }
    `}
  >
    This has a hotpink background.
  </div>)
}

我得到以下错误:

当运行时是自动的时,不能设置

实用化和pragmaFrag。

如果删除/** @jsx jsx */,就会在HTML中得到如下结果:

代码语言:javascript
复制
<div css="You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).">This has a hotpink background.</div>

这些是我的依赖:

代码语言:javascript
复制
"dependencies": {
    "@emotion/react": "^11.1.5",
    "@emotion/babel-plugin": "^11.2.0",
    "next": "^10.0.0",
    "react": "17.0.1",
    "react-dom": "17.0.1"
  }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-04-06 12:11:21

解决这个问题的最简单方法是用/** @jsx jsx */替换/** @jsxImportSource @emotion/react */,我甚至不需要再导入jsx了:

代码语言:javascript
复制
/** @jsxImportSource @emotion/react */
import { css } from "@emotion/react"

export default function testPage() {
  const color = 'darkgreen'
  return (<div
    css={css`
      background-color: hotpink;
      &:hover {
        color: ${color};
      }
    `}
  >
    This has a hotpink background.
  </div>)
}
票数 43
EN

Stack Overflow用户

发布于 2021-08-29 16:43:57

在我的例子中,我添加了经典的jsxrun时间。

代码语言:javascript
复制
/** @jsxRuntime classic */
/** @jsx jsx */
import { css } from "@emotion/react"
票数 5
EN

Stack Overflow用户

发布于 2021-09-30 05:37:56

我意识到我正在使用nodejs 12运行,只是使用nvm将节点版本更改为14,并且它工作了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66965774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档