【发布时间】:2020-09-10 02:58:36
【问题描述】:
下面的demo使用array.map来渲染三个块。
颜色的名称在Colors.tsx中定义。
export default {
foo: "#ff6347",
bar: "#4682b4",
baz: "#90ee90"
};
有没有办法使用您定义的颜色单独更改由 array.map 渲染的块的颜色?
我在 JS 中使用 Emotion 作为 CSS。
下面是完整的代码。
/** @jsx jsx */
import { jsx, css } from "@emotion/core";
import colors from "./Colors";
export default function App() {
const colorName = ["foo", "bar", "baz"];
const Block = colorName.map((item, index) => {
const blockStyle = css`
${baseStyle}
background-color: ${colors.foo}; // ${colors.item} did not work.
`;
return (
<li key={index}>
<span>{item}</span>
<div css={blockStyle} />
</li>
);
});
return <ul>{Block}</ul>;
}
const baseStyle = css`
width: 100px;
height: 100px;
`;
【问题讨论】:
标签: javascript css reactjs emotion