angular - 缺少试图修补状态的属性
问题描述
我正在尝试解码 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):预期类型来自属性'certificate',它在此处声明为'Partial'类型
我是 NGXS 的新手,在这里有点迷失。任何帮助将不胜感激。提前致谢
解决方案
推荐阅读
- mysql - 如何使用MySql根据表中的偏好顺序选择行值
- javascript - js(vuejs)中函数内部的操作顺序
- php - 如何在 Laravel 中使用大量的翻译?
- python - Pandas - 从数据框中完全删除重复项
- c++ - Arduino / C++ - 如果 INT 值 = X 然后
- server - 我想定期(每 10 分钟)运行一个 python 脚本。我有什么选择?
- firebase - 批量写入 Firestore 的最大大小(以 MB 为单位)是多少
- java - ServletContext 无法通过将其作为 Spring MVC 中的参数传递来注入
- c++ - C ++:在另一个类中初始化参数化类的对象
- javascript - 如何通过 Ajax 将视图模型发送到控制器