我有一个输入字段,其中有一个日期,但是问题是当我不想选择一个不是今天的日期时,每次都将当前日期保存在后端。 我想要是否在输入字段中选择例如15.11.2018将被保存。 在控制台日志中的save方法中,它告诉我正确的事情,我只认为问题出在reducers中
这是我的代码
<app-input-field label="{{'general.#date'|translate}}">
<input type="date" step="1" [ngModel]="newCosts.choosenDate| date:'yyyy-MM-dd'" (ngModelChange)="newCosts.choosenDate = $event">
</app-input-field>
save() {
this.newCosts.choosenDate = new Date(this.newCosts.choosenDate)
this.store.dispatch(new UpsertCostsAction({
costs: { ...this.newCosts }
}))
this.newCosts = emptyCosts()
}
export interface Costs {
id: string
choosenDate: Date
}
export function emptyCosts(): Costs {
return {
id: "",
choosenDate: new Date(),
}
}
减速器
function toCostsViewModel(costs: Costs): Costs {
costs.choosenDate = new Date(costs.choosenDate)
return costs
}
function upsertCosts(state: ValueItemDatabaseState, action: UpsertCostsInternalAction): ValueItemDatabaseState {
action.payload.forEach(cost => {
state.costs = state.costs.set(cost.id, toCostsViewModel(cost))
})
return {
...state
}
}
答案 0 :(得分:0)
使用您的保存方式
save() {
this.newCosts.choosenDate = new Date(this.newCosts.choosenDate)
this.store.dispatch(new UpsertCostsAction({
costs: { ...this.newCosts }
}))
this.newCosts = emptyCosts()
}
,然后您运行this.newCosts = emptyCosts()
,emptycosts
会覆盖choosenDate: new Date()
,基本上会创建一个新的现在日期。
您可以确认吗?