缺少试图修补状态的属性

问题描述

我正在尝试解码 ssl 证书并修补数组属性的状态。这就是我现在正在做的:

状态模型

export interface CertificateStateModel {
  certificate: CertificateObject;
  certificates: Certificate[];
  searchLimitedStateMessage: string;
  emptyCertificateMessage: string;
  searchTerm: any;
}

@State<CertificateStateModel>({
  name: "certificate",defaults: {
    certificate: null,certificates: [],searchLimitedStateMessage: SearchMessages.typetoSearch,emptyCertificateMessage: SearchMessages.typetoSearch,searchTerm: null,},})

解码证书的函数

function decodeCert(CertificateObject) {
  if (CertificateObject)
  for (let entity of CertificateObject) {
    const certPem = atob(entity)
    console.log(entity)
          const cert = pki.certificateFromPem(certPem)
          const fingerprint = forge.md.sha1.create().update(forge.asn1.toDer(forge.pki.certificatetoAsn1(cert)).getBytes()).digest().toHex();
          const currentDate = new Date();
          const daysToExpire = cert.validity.notAfter.valueOf() - currentDate.valueOf();

            let certificates = {
                name: entity.name,issueDate: cert.validity.notBefore,expiryDate: cert.validity.notAfter,fingerPrint: fingerprint,serialNumber: cert.serialNumber,daysToExpire: daysToExpire / 86400000,}
            return certificates;
        }
  }

获取证书和补丁状态的操作:

@Action(CertificateAction.GetAllCertificates)
  getAllCertificates(
    ctx: StateContext<CertificateStateModel>,action: CertificateAction.GetAllCertificates
  ) {

    ctx.dispatch(new Busy(true));
    return this.svc.getAllCertificates().pipe(
      tap((certificate) => {
        ctx.patchState({
          certificate: decodeCert(certificate)
        });
        ctx.dispatch(new Busy(false));
        console.log(certificate)
      },(error: any) => {
        ctx.dispatch([
          new displayMessage({type: "error",list: [ "Get All Certificates Error",error.error ]}),new Busy(false)
        ]);
      })
    );
  }

这将返回错误:'certificate.state.ts(22,3): The expected type come from property 'certificate' 它在此处声明为类型 'Partial'

我是 NGXS 的新手,在这里有点迷茫。任何帮助将不胜感激。提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)