Javascript 如何访问并可能修改子元素组件的属性?

Javascript 如何访问并可能修改子元素组件的属性?,javascript,lit-element,Javascript,Lit Element,从Lit元素的方法内部组件类定义:如何访问子组件的属性?我正在尝试获取/修改子对象的属性值。 e、 g 。。。 render(){ 返回html` 查询限制 更改属性 `; } ... changeQueryLimit(){ 让topicsTree=this.shadowRoot.getElementById(“主题树”); //TODO:console.log(topicsTree.querylimit); } 如果主题unicode树核心也是一个自定义元素,那么希望它也有一个属性setter

Lit元素的方法内部组件类定义:如何访问子组件的属性?我正在尝试获取/修改子对象的属性值。 e、 g

。。。
render(){
返回html`
查询限制
更改属性
`;
}
...
changeQueryLimit(){
让topicsTree=this.shadowRoot.getElementById(“主题树”);
//TODO:console.log(topicsTree.querylimit);
}

如果
主题unicode树核心
也是一个自定义元素,那么希望它也有一个属性setter/getter(这是lit元素的默认值),因此非常简单

let topicsTree = this.shadowRoot.getElementById("topics-tree");
topicsTree.querylimit = 5;
我会成功的

如果没有,则可以直接设置和修改属性

topicsTree.setAttribute('querylimit', 5);

下面是如何访问和可能修改子元素组件属性的示例:

从'@polymer/lit-element'导入{LitElement,html};
类MenuElement扩展了LitElement{
静态获取属性(){return{
qlimit:{type:String}
}
}
构造函数(){
超级();
这个.qlimit=“9”;
}
render(){
返回html`
查询限制
更改属性
`;
}
changeQueryLimit(){
//让topicsTree=this.$.topicsTree;
log('-->',this.shadowRoot.querySelector(“#主题树”).querylimit);
this.qlimit=“10”
设置超时(()=>{
console.log('-->',this.shadowRoot.querySelector(“#主题树”).querylimit)},200)
}
}
自定义元素。定义('menu-element',MenuElement);

我有一个语法错误,这让我觉得我无法访问属性。我真傻。
topicsTree.setAttribute('querylimit', 5);
import { LitElement, html } from '@polymer/lit-element'; 

class MenuElement extends LitElement {
    static get properties(){ return {
       qlimit:{type:String}
     }
    }

    constructor() {
    super();
      this.qlimit="9";
    }

  render() {
      return html`
        <div id="div">
          <label for="queryLimit">Query Limit</label>
          <input type="number" name="queryLimit" id="queryLimit" value="7" min="1" max="21">
          <button @click="${this.changeQueryLimit}">change attributes</button>
        </div>
        <topics-unicode-tree-core .querylimit="${this.qlimit}" id="topics-tree"></topics-unicode-tree-core>
      `;
    }

    changeQueryLimit() {
      //let topicsTree = this.$.topicsTree;

         console.log('-->', this.shadowRoot.querySelector("#topics-tree").querylimit );

         this.qlimit="10" 
         setTimeout(()=>{
              console.log('-->', this.shadowRoot.querySelector("#topics-tree").querylimit )},200)

    }
}
customElements.define('menu-element', MenuElement);