React-Redux:发布操作失败,并显示500错误

时间:2020-04-10 08:12:11

标签: reactjs redux

我正在尝试使用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' \

1 个答案:

答案 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)