为啥我无法在我的 React 应用程序中访问 Konva Canvas 属性?

Posted

技术标签:

【中文标题】为啥我无法在我的 React 应用程序中访问 Konva Canvas 属性?【英文标题】:Why can't I access Konva Canvas properties in my React app?为什么我无法在我的 React 应用程序中访问 Konva Canvas 属性? 【发布时间】:2020-09-01 11:30:46 【问题描述】:

我正在使用带有 ReactJS 的 FabricJS 库。这里我想创建和使用 Konva.Canvas 构造方法。但是,我在访问 Konva Canvas 属性时遇到了问题。

如果我使用 canvas.add 方法,我会得到错误 canvas.add is not a function

const Konva = window.Konva;
class Canvas extends Component 
    state =
        canvas: null,
        width: null,
        height: null,
        layer: null,
    
    componentDidMount() 
        const canvas = new Konva.Canvas( 
            container: this.c,
            height:this.props.height,
            width:this.props.width
        );
        console.log(canvas);
        const layer = new Konva.Layer();
        this.setState(canvas,layer);
        // canvas.add(layer);
        layer.draw();
    

【问题讨论】:

是的。如果我使用 canvas.add 方法。它说 canvas.add 不是一个函数。我没有从实例中获取任何属性。我是 请将该信息添加到您的问题中。 你好,我犯了一个愚蠢的错误,使用 Canvas 而不是舞台。已经解决了。谢谢。艾舍伍德 很高兴听到。请提供并接受答案或删除您的问题,以免数百人停下来试图提供帮助。 :) 我已经替换了 const canvas= new Konva.Stage() 【参考方案1】:

替换

 const canvas = new Konva.Canvas( 
        container: this.c,
        height:this.props.height,
        width:this.props.width
    );

 const canvas = new Konva.Stage( 
        container: this.c,
        height:this.props.height,
        width:this.props.width
    );

Stage 支持 add 方法。更多信息https://konvajs.org/api/Konva.Stage.html#main

【讨论】:

以上是关于为啥我无法在我的 React 应用程序中访问 Konva Canvas 属性?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 CORS 不能在我的 express/react 应用程序上运行?

为啥 react 中的转换函数无法渲染?

为啥我没有在我的 react 应用程序中获取 firebase 存储文件 url?

为啥我无法播放 React HTML5 视频组件?

为啥我无法在外部点击时使用 react js 访问我的两个容器的当前目标值?

为啥 Postman 在我的 React 应用程序中接收到 express 会话 cookie 而不是我的 post 请求