У меня есть идея, вместо того, чтобы передавать refs от дочернего к родительскому, сделать refs в родительском компоненте и передать их дочернему компоненту, а затем назначить их каждому элементу ввода, что-то вроде следующих кодов :
Родительский компонент:
import React, { Component, createRef } from 'react';
class BirthdaylistKeeper extends Component{
constructor(props) {
super(props);
this.nameRef = createRef();
this.dayRef = createRef();
this.dobRef = createRef();
//state
}
~~~
render() {
return(
~~~
<Entry
nameRef={this.nameRef}
dayRef={this.dayRef}
dobRef={this.dobRef}
}
}
И в дочернем компоненте передайте каждую ссылку на связанный элемент ввода:
<form onSubmit={props.handleUpdate}>
<input
~~~
name="name"
~~~
ref={props.nameRef}
~~~
/>
<input
~~~
name="day"
~~~
ref={props.dayRef}
~~~
/>
<input
~~~
name="dob"
~~~
ref={props.dobRef}
~~~
/>
Также помните, что вы должны использовать разделенные refs для каждого входного элемента, не используя один для всех.