为什么我的 handleChange 方法没有在 lwc 中调用

如何解决为什么我的 handleChange 方法没有在 lwc 中调用

我是 lwc 的新手,并在通过单击帐户记录检查复选框时尝试调用 handleChange 方法 在下面的链接中,有两个组件显示的帐户和联系人记录列表,在右栏中有一个带有帐户名称的所有联系人的列表,因此当我单击右栏中的帐户名称时,会得到相同的帐户名称在左侧检查,只有它的相关联系人应该显示在所有联系人的列表中,我尝试通过这样的 pubsub 事件来实现它

https://i.stack.imgur.com/zx2Fc.png

import { LightningElement,api,wire,track } from 'lwc';
import pubsub from 'c/pubsubjs' ;
export default class MyPublisher extends LightningElement {
    @track data;
    @track error;
    @track accountId;
    @api  accrecords = [];
    
    connectedCallback(){
        this.regiser();
    }
    
    regiser(){
        pubsub.register('accEventdetails',this.accDetails.bind(this));
    }
    accDetails(accountId){
    this.accountId = accountId;  // getting Id sent from 2nd component
    console.log("inParent=  "+this.accountId);
    var parentId = this.accountId;
    console.log('parentId= '+parentId);
    this.template.querySelector(`[data-dev-id="${this.accountId}"]`).checked=true;
    this.handleChange();
 }
  /*renderedCallback(){
      handleChange();   // also tried to call it in renderedCallback bt didn work.
  }*/
  
     handleChange(event) {
        
       if(event.target.checked){
        var accId = event.currentTarget.getAttribute('data-dev-id'); 
       // console.log("accId="+accId);
        this.accrecords.push(accId);
       
      }else{
        var accId = event.currentTarget.getAttribute('data-dev-id');
        this.accrecords = this.accrecords.filter(value =>value!==accId)
      } 
      console.log("accrecords="+JSON.stringify(this.accrecords));
      pubsub.fire('eventdetails',this.accrecords);
    }

通过这种触发方法,我可以在单击复选框时在联系人列表中显示与帐户相关的联系人,这可以实现

<template for:each={data} for:item="a">
    <div key={a.Id}>
        <div class="slds-grid">
            <div class="slds-has-error chckbx">
                  <lightning-input type="checkBox" onchange={handleChange} data-dev-id={a.Id}>   
                  </lightning-input>
             </div>
              <div class="slds-col ">
                   <h1>{a.Name}</h1>
              </div>
        </div>
    </div>
</template>          

这是我触发事件的第二个组件代码

import { LightningElement,track,wire } from 'lwc';
import pubsub from 'c/pubsubjs' ;
export default class ShowConRecords extends LightningElement {
    @track data ;
    @track error;
    @track accountId = [];
    @api accrecordId = []; 

    connectedCallback(){
        this.regiser();
    }

    regiser(){
        window.console.log('event registered ');
        pubsub.register('eventdetails',this.conDetails.bind(this));
    }

    conDetails(accountId){
       this.accountId = JSON.stringify(accountId);
     console.log("inchild "+JSON.stringify(this.accountId));
    }

 handleChange(event){
  var accId = event.currentTarget.getAttribute('data-dev-id');
  console.log('accId= '+accId);
  pubsub.fire('accEventdetails',accId);
 }

 <template for:each={data} for:item="con" >              
     <div key={con.Id} >
        <div class="slds-border_bottom recrd">
            <div class="Name ">  
                {con.conName}
            </div>
             <h1 class="account">
                  Account : &nbsp;&nbsp;
                  <a class="accName" data-dev-id={con.accId} onclick={handleChange}>
                    {con.accName} 
                  </a>
             </h1>
         </div>
    </div>
</template>

所以任何人都可以帮助我。 提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?