【发布时间】:2021-05-20 17:42:03
【问题描述】:
我正处于制作使用矩形的矩形 SVG 的早期阶段。我正在使用以 8 为增量获取所有 RGB 颜色的循环来生成像素的颜色。返回的数组中有 32,768 <rect />。该代码产生了预期的结果,但是我得到一个错误:
铬
Maximum call stack size exceeded
getTypeSymbol (react_devtools_backend.js:4828)
火狐
too much recursion
据我所知,这不是递归问题,函数似乎没有重新加载。我认为这与数组的大小有关。
关于我应该在这里做什么的任何想法,我以前从未见过这个问题。
function PixelColour() {
console.log("start");
let counter = 0;
let x = 0;
let y = 0;
const colours = [];
for (let red = 0; red < 256; red += 8) {
for (let green = 0; green < 256; green += 8) {
for (let blue = 0; blue < 256; blue += 8) {
counter++;
if (x < 256) {
x++;
} else {
x = 0;
}
if (x === 256) {
y++;
}
colours.push(
<rect
key={counter}
x={x}
y={y}
height="1"
width="1"
style={{ fill: `rgb(${red}, ${green}, ${blue})` }}
/>
);
}
}
}
return <Fragment>{colours}</Fragment>;
}
class Colours extends React.Component {
render() {
return (
<div>
<svg width="256" height="128" style={{ border: "2px solid black" }}>
<PixelColour />
</svg>
</div>
);
}
}
【问题讨论】:
标签: reactjs