gpt4 book ai didi

javascript - react : how to access component function from a click event on vis. js 边缘?

转载 作者:行者123 更新时间:2023-11-29 18:49:53 25 4
gpt4 key购买 nike

我有一个 React 组件,例如:

export default class App extends Component {
// ...

_openDialog = () => {
this.setState({ isDialogOpen: true });
};

render() {
return (
<div>
<div className="tree_graph_div">
<Graph
graph={graph}
events={{
selectEdge: function(event) {
var { nodes, edges } = event;
if (edges.length == 1) {
//I want to access _openDialog here with edge id
}
}
}}
/>
</div>
<div>
<Dialog />
</div>
</div>
);
}
}

图是用 react-graph-vis 创建的。

我想让 selectEdge 事件处理:打开此 edge_id 的对话框。

事件有边缘 ID,但我如何才能访问回函数 _openDialog?

我试过了,但是这里的 this 代表 Graph 对象,而不是 App。

谢谢


我尝试使用箭头函数将 Graph 更改为此:

<Graph graph={graph}
events={{
selectEdge: (event) => {
debugger;
}
}}
/>

但是在调试器点停止,“this”没有函数 _openDialog。

最佳答案

您可以将赋予 selectEdge 的函数更改为箭头函数以使用封闭的词法作用域,它在 this 上具有 _openDialog

export default class App extends Component {
// ...

render() {
return (
<div>
<div className="tree_graph_div">
<Graph
graph={graph}
events={{
selectEdge: (event) => {
var { nodes, edges } = event;
if (edges.length == 1) {
this._openDialog(edges);
}
}
}}
/>
</div>
<div>
<Dialog />
</div>
</div>
);
}
}

关于javascript - react : how to access component function from a click event on vis. js 边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com