React,TypeScript,Next.js.在静态数组中将所有记录更改为最后一次



我在更新数组时遇到问题。当我一次又一次点击按钮时,我只有两条或更多的记录,和我添加的最后一条一样。有人知道解决办法吗?

在图片中,您可以在控制台中看到此功能的结果。

首次退出

第二次退出

class Advertisement {
advertisment:IAdvertisment = {
id: 0,
name: "",
description: "",
date: new Date()
};
private static ad:[IAdvertisment];

add(id: Number, name: String, description: String, date: Date):void {
this.advertisment.id = id;
this.advertisment.name = name;
this.advertisment.description = description;
this.advertisment.date = date;
if (Advertisement.ad) {
Advertisement.ad.push(this.advertisment);
}
else {
Advertisement.ad = [this.advertisment];
}
}
get():[IAdvertisment]{
return Advertisement.ad;
}
}
class AddAdvertisment extends React.Component <any, any> {
private advertisment;
constructor(props, state:IAdvertisment){
super(props);
this.onButtonClick = this.onButtonClick.bind(this);
this.state = state;
this.advertisment = new Advertisement();
}

onButtonClick(){
this.advertisment.add(this.getAmount(), this.state.name, this.state.description, this.state.date);
}
...
render() {
return (<div>
<input id="name" onChange={this.updateName.bind(this)} ></input>
<input id="description" onChange={this.updateDescription.bind(this)} ></input>
<input type="date" id="date" onChange={this.updateDate.bind(this)} ></input>
<button className={styles.menu_button} onClick={this.onButtonClick.bind(this)}>Add</button>
</div>);
}
}
我知道。我每次都必须创建对象。
class Advertisement {
private static ad:[IAdvertisment];
add(id: number, name: string, description: string, date: Date):void{
let advertisment:IAdvertisment = {
id: id,
name: name,
description: description,
date: new Date()
};
if(Advertisement.ad){

Advertisement.ad.push(advertisment);
console.log(Advertisement.ad);

}
else{
Advertisement.ad = [advertisment];
}
};

阵列中的推送对象

相关内容

最新更新