React-Redux: пост-действие завершается с ошибкой 500 - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь вставить данные в мою БД, используя реаги и редукцию.

Назначьте почтальона или cocoaRestClient для попытки вызова API. Я передаю данные, такие как form-data, поэтому я думаю, что мне нужно передать данные формы.

Я создал этот файл для формы:

Форма. 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 Ответ

1 голос
/ 10 апреля 2020

Заменить:

-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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...