Пусть onDrop обработает файл, а затем обновит входные данные в моей SimpleForm из возвращенных данных. - PullRequest
0 голосов
/ 01 октября 2019

При использовании response-admin и я хотел бы использовать FileInput, чтобы разрешить загрузку файла на сервер при отбрасывании / выборе, а затем обновить SimpleForm с возвращенными результатами.

У меня есть загрузка файлаработая и возвращая правильный ответ, мне просто нужно обновить source = "dateMath" в ArrayInput с возвращенным ответом.

export const DateMathCreate = props => (
    <Create {...props}>
        <SimpleForm>
            <TextField source="id" />
            <TextInput source="jobName" />
            <FileInput options={{onDrop:fileDropped}} source="csvfile" label="Drop CSV File" accept="text/csv">
                <FileField source="src" title="title" />
            </FileInput>
            <ArrayInput source="dateMath" label="Date Math Entries">
              <SimpleFormIterator>
                <DisabledInput label="ID" source="id" />
                <DateInput label="Date" source="date" />
                <TextInput label="Trigger ID" source="triggerID" />
              </SimpleFormIterator>
            </ArrayInput>
        </SimpleForm>
    </Create>
);

const fileDropped = acceptedFiles => {
  console.log("Inside onDrop ");
  acceptedFiles.forEach(file => {
    console.log("file ", file);
    dataProvider(CREATE, 'dateMath/upload', {src: file, title: file.name}).then((response) => {
          console.log("response ", response);
          if (response.data) {
            console.log("Good response ", response.data);


            // Here is where is i need to update the form above

            this.setState({
              dateMath: response.data
            });
          } else {
            console.log("Bad response ");
          }
      }).catch((e) => {
            console.log("e ", e);
      });
  });
}
...