this.transformer.anchorSize不是函数

时间:2018-08-13 07:24:37

标签: javascript reactjs konvajs

我试图在React Konva中的Transformer Component中进行一些更改,并且每当我尝试更改锚点大小时都会遇到此错误。我遵循了文档-https://konvajs.github.io/api/Konva.Transformer.html#validateAnchors__anchor

中所述的语法

问题出在anchorSize中。请帮我。这是代码-

class TransformerComponent extends React.Component {
  componentDidMount () {
    this.checkNode ();
  }

  componentDidUpdate () {
    this.checkNode ();
  }

  checkNode() {
    const stage = this.transformer.getStage();
    const { selectedShapeName } = this.props;
    const selectedNode = stage.findOne ('.' + selectedShapeName);

    this.transformer.rotateEnabled (false);
    this.transformer.anchorSize (5);

    if (selectedNode === this.transformer.node()) {
      return;
    }

    if (selectedNode) {
      this.transformer.attachTo (selectedNode);
    }
    else {
      this.transformer.detach();
    }

    this.transformer.getLayer().batchDraw();
  }

  render() {
    return (
      <Transformer
        ref = {node => {
          this.transformer = node;
        }}
      />
    );
  }
}

2 个答案:

答案 0 :(得分:0)

您需要为checkNode() bind this (以下简称),如下所示:

class TransformerComponent extends React.Component {

    constructor(props) {
        super(props)
        this.checkNode = this.checkNode.bind(this)
    }
    ...

答案 1 :(得分:0)

anchorSize是最近引入的一个非常新的属性。尝试将Konva更新到最新版本。