gpt4 book ai didi

javascript - Polymer 2.0 从子组件访问父组件

转载 作者:行者123 更新时间:2023-12-01 02:37:12 24 4
gpt4 key购买 nike

我有一个嵌套组件,在这种情况下,Polymer 向上移动 DOM 或组件树的方式是什么。

<parent-component>
<some-component>
<component-i-am-starting-from></<component-i-am-starting-from>
</some-component>
<some-other-component>
</some-other-component>
</parent-component>

我希望位于深层嵌套组件中并引用任何父组件及其模型或在其中一个组件内触发事件。如果我可以访问同级组件等,那就额外奖励了。

向下旅行很容易

this.$.idOfChildComponent.event()

我尝试过dispatchEvent、domHost、shadowRoot,似乎无法在组件树上进一步向上移动到直接父级,或者返回错误,指出某些内容未定义、不是函数等。

是否有像 React 这样的方法将引用作为属性传递下来。这些文档似乎没有帮助,也没有在互联网上搜索。

谢谢!

更新

所以我不确定这是否是正确的方法,但它可以从子函数调用父函数。

<parent-component id="parentComponent">
<some-component>
<component-i-am-starting-from></<component-i-am-starting-from>
</some-component>
<some-other-component>
</some-other-component>
</parent-component>

componentIAmStartingFromFunc(){
document.getElementById('parentElement').parentElementFunc()
}

但是对于 sibling 似乎不起作用?

** 更新 **我基本上做了同样的事情,通过从其子组件之一调用父级来调用同级事件,然后向同级组件发送一个触发器,该同级组件也是子组件。

最佳答案

从子函数调用父函数;

child-component.html( polymer 2.x)

this.dispatchEvent(new CustomEvent('upway-func', {detail: {op:"Optionally I can send some data"}}));

child-component.html( polymer 1.x)

 this.fire('upway-func', {detail: {op:"Optionally I can send some data"}});

parent-component.html

...
<child-component on-upway-func='_someFunction'></child-component>

...
_someFunction(d){
console.log(d.detail.op); // "Optionally I can send some data"
}

这里this link了解更多详情

关于javascript - Polymer 2.0 从子组件访问父组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47820353/

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