gpt4 book ai didi

javascript - 确定javascript中单击对象的类型

转载 作者:行者123 更新时间:2023-11-28 04:00:26 25 4
gpt4 key购买 nike

我正在寻找一种方法来确定我在 JavaScript 中单击的类型对象。

我在 React(使用 PrimeReact - Tree View)中填充了一个类似于 TreeView 的 GUI 元素,其中包含来自 Rest 调用的 Json 对象。现在树的第一层来自ObjectA,第二层来自ObjectB。

当用户点击时,我不想引发ObjectA的事件,而只想引发ObjectB的事件,所以如果我用Java来做,我会做如下的事情

ClickedObject.isAssignable(ObjectB)

这会告诉我这是我感兴趣的对象的类型。

我尝试做类似的事情

ObjectB instanceof ClassB

但是当我从 JSon 构造对象时,我无法访问它的构造函数(或者有没有办法获取对象的构造函数)..

实现我想做的事情的最佳方法是什么?

最佳答案

class App extends React.Component {
outer = (e) => {
console.log('outer');
}

inner = (e) => {
e.stopPropagation();
console.log('inner');
}

render() {
return (
<div onClick={this.outer}>
Outer
<div onClick={this.inner}>Inner</div>
</div>
)
}
};

演示:https://codesandbox.io/s/j2j6x0lo6w

或者:

class App extends React.Component {
click = (e) => {
e.stopPropagation();
console.log(e.target.id);
}

render() {
return (
<div id="outer" onClick={this.click}>
Outer
<div id="inner" onClick={this.click}>Inner</div>
</div>
)
}
};

或者:

class App extends React.Component {
click(id, e) {
e.stopPropagation();
console.log(id);
}

render() {
return (
<div onClick={(e) => this.click('outer', e)}>
Outer
<div onClick={(e) => this.click('inner', e)}>Inner</div>
</div>
)
}
};

编辑

对于 PrimeReact Tree 组件,您可以执行对象引用相等性检查。例如:

onSelectionChange(e) {
if (e.selection === data[1].children[2]) {
console.log('Clicked the 3rd child of the second parent');
}
}

关于javascript - 确定javascript中单击对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47162922/

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