我正在尝试使用react和redux在数据库中插入数据。
Usign邮递员或cocoaRestClient尝试api调用,我将诸如form-data的数据传递给我,所以我认为我需要将form-data传递给。
我已经为以下格式创建了该文件:
Form.js
//.....
this.state = {
newMeeting:{
meeting: {}
},
//....
handleChange = (e) => {
let newMeeting = this.state.newMeeting;
newMeeting.meeting[e.target.name] = e.target.value;
this.setState({ newMeeting });
};
handleSubmit(event) {
event.preventDefault();
console.log("NEWMEETING: ", this.state.newMeeting);
let arraymeeting = this.state.newMeeting
var addmeeting = new FormData()
Object.keys(arraymeeting).map((item, i) => {
let $val = arraymeeting[item];
console.log("$VAL: ", $val)
addmeeting.append(item, typeof $val === "object" || Array.isArray($val) ? JSON.stringify($val) : $val)
})
this.props.addMeeting(addmeeting)
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<div>
<label>Meeting Name:</label>
<input
type="text"
name="meeting_name"
onChange={(event) => this.handleChange(event)}
/>
</div>
<div>
<label>Date:</label>
<input
type="text"
name="date"
onChange={(event) => this.handleChange(event)}
/>
</div>
<div>
<label>Hour</label>
<input
type="text"
name="hour"
onChange={(event) => this.handleChange(event)}
/>
</div>
我认为要像表单数据那样传递数据,但是API会向我发送500错误。
我尝试使用其他程序(如我之前提到的)传递诸如表单数据之类的数据,并且它可以工作。你知道我该怎么解决吗?
谢谢
编辑:
邮递员的卷发:
curl --location --request POST 'MYAPILink' \
--header ': 11' \
--form 'meeting_name=general name' \
--form 'date=2020-04-10' \
--form 'hour=09:00' \
答案 0 :(得分:1)
替换:
-let arraymeeting = this.state.newMeeting
+let arraymeeting = this.state.newMeeting.meeting
它应该解决问题。 基本上,您要确保FormData等于:
const m = new FormData();
m.append('meeting_name', this.state.newMeeting.meeting.meeting_name);
m.append('date', this.state.newMeeting.meeting.date);
m.append('hour', this.state.newMeeting.meeting.hour)