Я пытаюсь отправить статус загруженного файла обратно в родительский компонент, используя реквизиты и обратные вызовы (как описано в этом руководстве).
Моя загрузка файлаобрабатывается компонентом Reaction-Dropzone .
Вот мои компоненты:
App.js
class App extends Component {
constructor(props) {
super(props);
this.state = {
doneUploading: false,
};
}
dataFromFileDrop = (fileData) => {
this.setState({
doneUploading: fileData.doneUploading,
});
};
render() {
return (
<div className="App">
<FileDrop dataFromFileFrop={this.dataFromFileDrop}/>
{ this.state.doneUploading ? 'Done uploading.' : 'Upload a video.' }
</div>
);
}
}
FileDrop.js
class FileDrop extends Component {
constructor(props) {
super(props);
this.state = { files: [] };
}
onDrop = (files) => {
this.setState({
files
});
// process file
// send upload status to parent component
const fileData = {
doneUploading: true
};
this.props.dataFromFileDrop(fileData); // ERROR
};
render() {
return (
<div className="FileDrop">
<Dropzone onDrop={this.onDrop.bind(this)}>
Upload video!
</Dropzone>
</div>
);
};
}
Когда я запускаю приложение и помещаю файл в рабочую зону, я получаю сообщение о том, что this.props.dataFromFileDrop
не является функцией.Могу ли я узнать, где я делаю ошибку?
Ошибка возникает из-за того, что я не передаю dataFromFileDrop
в качестве опоры для компонента Dropzone?
Добавление этого кконструктор в FileDrop не помог:
this.props.dataFromFileDrop.bind(this);