【发布时间】:2019-12-21 05:07:51
【问题描述】:
如果我安装了emotion/css,那么 API 就很清晰:
package.json:
"dependencies": {
"@emotion/css": "^11.1.3",
反应组件:
import React from "react";
import { css } from "@emotion/css";
const someStyle = css`
display: none;
`
function MyComponent() {
return (
<div className={someStyle} />
);
}
但是根据文档,您应该安装@emotion/react:
https://emotion.sh/docs/introduction
package.json:
"dependencies": {
"@emotion/react": "^11.4.1",
现在 API 更加混乱了:
import React from "react";
/** @jsx jsx */
import { jsx, css } from "@emotion/react";
const someStyle = css`
display: none;
`;
function MyComponent() {
return (
<div css={someStyle} />
);
}
你不仅需要注释/** @jsx jsx */,而且你还必须导入jsx,即使它没有被使用。在我的 IDE 中,这意味着我的 React 导入会收到 lint 警告。
推荐的方式有什么好处?我很想忽略文档并按照旧方式进行。
【问题讨论】: