首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jsPlumb与React

使用jsPlumb与React
EN

Stack Overflow用户
提问于 2017-02-21 23:48:51
回答 1查看 2.7K关注 0票数 3

我正在使用jsPlumb呈现一些来自react和connecting的元素。每次配置发生变化时,我都要重新连接节点。但我从第二次呈现开始从jsPlumb获得错误,如下所示

.each iteration failed : TypeError: Cannot read property 'force' of undefined

然后,所有从jsplumb中拖动/移动的交互都会停止处理错误。

通过删除所有端点引用和连接来重置jsPlumb实例的最佳方法是什么?我正在做jsPlumbInstance.reset(),但它没有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 19:10:10

我所做的是为每个边缘使用一个组件,它只呈现一个空的div,并通过道具传递edge信息和jsplumb实例。然后,父组件跟踪连接的边缘。

在父类中:

代码语言:javascript
复制
var edgeComponents = []
validEdges.forEach(
    
  edge => {
    
    edgeComponents.push(
    
      <Edge
        key={${edge.source}-${edge.target}}
    
        edge={edge}
    
        jsPlumb={this.state.jsPlumbInstance}
    
      />
)
  }
)

儿童班:

代码语言:javascript
复制
export default class Edge extends Component {
  componentDidMount(){
    const edge = this.props.edge
    const connection = this.props.jsPlumb.connect({source:edge.source, target:edge.target})
    this.setState({connection: connection})
  }

  componentWillUnmount () {
    this.props.jsPlumb.detach(this.state.connection)
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42380161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档