我想对API端点进行POST,这里有一个名为space_photos的字段,它接受对象数组。
每当用户上传照片时,这都是我的回调功能。
constructor(){
this.space_photo_holder = [];
}
callback = (e) => {
this.space_photos_holder.push(e);
this.setState({space_photos: this.space_photos_holder})
}
我认为代码是合法的,但还有更好的方法吗?
答案 0 :(得分:1)
您可以简单地使用spread运算符。建议在constructor
中设置初始状态,并在新状态基于先前状态时使用setState
的功能版本。
constructor(){
this.state = { space_photos: [] };
}
callback = (e) => {
this.setState((state) => { space_photos : [...state.space_photos, ...e]})
}
此外,您可以使用cancat
方法。
callback = (e) => {
this.setState((state) => { space_photos : state.space_photos.cancat([e]) });
}
答案 1 :(得分:1)
您只需使用concat
代替推送即可。它返回一个更新的数组
constructor(){
this.state = {
space_photos= []
}
}
callback = (e) => {
this.setState({space_photos: this.state.space_photos.concat(e)})
}