У меня есть компонент Field (redux-form), который вызывает пользовательский компонент ImageInput, который загружает изображение, а затем выплевывает src.
Мне нужно передать этот src из моего дочернего компонента в родительский, где он обновляет родительское состояние через обработчик.
Я пытался последовать этому ответу, но я немного запутался, поскольку мои настройки выглядят немного иначе: Как обновить состояние родителя в React?
Вотмой родительский компонент
handleChange(e) {
console.log(e)
this.setState({[e.target.name]: e.target.value});
}
<Field
{...this.props}
component={ImageInput}
name="templating.img"
onChange={this.handleChange.bind(this)}
/>
, а затем мой ребенок, куда вводится и выгружается изображение
constructor(props) {
console.log('props', props);
super(props);
this.state = {
src: null
}
console.log(this.state)
}
_imgUpload = (e) => {
e.preventDefault();
// console.log(e.target.files)
if (e.target.files.length === 1) {
let file = e.target.files[0]
loadImage(e.target.files[0])
.then(uploadThumbor)
.then(formatImage)
.then(({src, dataUri}) => {
this.setState({src: src})
console.log('img', src)
})
}
}
/* Snippet where the image upload occurs */
<div style={styles.image}>
<div style={styles.defaultPreview}></div>
<div style={styles.sample}></div>
<input type="file" style={styles.uploadPreview} accept="image/*" onChange={this._imgUpload} />
</div>
После загрузки изображения я устанавливаю состояние в дочернем компоненте.Мне нужно передать это состояние родителю, где оно обновит свое состояние.Я не думаю, что onChange = {this.handleChange.bind (this)} является правильным для этого родительского компонента в данном случае (это верно для других компонентов поля, которые являются простыми входными данными).
Любая помощь будет потрясающей.