繁体   English   中英

如何为使用react-konva呈现的canvas元素设置HTML-id

[英]How to set HTML-id for a canvas element rendered with react-konva

我在项目中使用react-konva来呈现HTML5-canvas元素:

import desktop_tea_1 from "./previews_desktop/tea_1.png";

const DesktopTea1 = () => {
    const [desktop_tea_1_const] = useImage(desktop_tea_1);
    return <Image image={desktop_tea_1_const} width={600} height={600}  />;
};

(......)

<Stage width={600} height={600}>
    <Layer ref="DesktopTea1">
        <DesktopTea1/>
    </Layer>
</Stage>

现在我希望HTML输出具有id (myId),如:

<canvas width="600" height="600" id="myId"></canvas>

我只能找到konva-id,但没有设置HTML-id。

最好使用尽可能少的层数。 所以我不建议在你的应用中使用它们中的很多。

没有Konva API来为图层的canvas元素设置id。 但您可以手动执行此操作:

const App = () => {
  const layerRef = React.useRef(null);
  React.useEffect(() => {
    layerRef.current.getCanvas()._canvas.id = 'some-id';
  }, []);

  return (
    <Stage width={600} height={600}>
      <Layer ref={layerRef}>
        <DesktopTea1/>
      </Layer>
    </Stage>
  );
}

如果你不打算使用太多层css :nth-of-type()可能工作得很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM