我有一个函数,可以使用.getTime()
方法将对象中的属性从Date类型转换为字符串。我可以看到,我的prop和object都很好,但是当我将结果发送到服务器时,它会将我的字符串转换为date对象。
const temp = this.committeeInfo.aDatesPhases.map((item): IDatesPhases => {
return {
...item,
sDateStart: String(Number(new Date(item.sDateStart).getTime())),
sDateEnd: String(Number(new Date(item.sDateEnd).getTime()))
};
});
this.committeeData = {
...this.committeeData,
aDatesPhases: temp
};
console.log(this.committeeData.aDatesPhases); // Works fine
this._store.dispatch(new AddCommitteePending(this.committeeData)); // There aDatesPhases now just dates again
NgRx效果仅将其发送到服务器,而不进行修改,reducer仅用于将状态更改为加载指示。
可能是什么问题,我该如何解决?
答案 0 :(得分:0)
能否请您尝试使用object.assign更改对象属性,而不是仅仅分配类似的内容,
this.committeeData= Object.assign({}, this.committeeData, {aDatesPhases: temp});
在您的代码中,您正在更改内部对象aDatesPhases的引用,但没有将aDatesPhases的引用更新为this.committeeData。