Tôi đang tìm cách tạo một thành phần không trạng thái input phần tử của thành phần mẹ có thể được xác thực bởi thành phần mẹ.
Trong ví dụ của tôi bên dưới, tôi đang gặp sự cố trong đó đầu vào refkhông bao giờ được gán cho quyền riêng tư của cha mẹ_emailAddress tài sản .
Khi nào handleSubmitđược gọi this._emailAddresslà undefined. Có điều gì đó tôi đang thiếu, hoặc có cách nào tốt hơn để làm điều này?
interface FormTestState {
    errors: string;
}
class FormTest extends React.Component<void, FormTestState> {
    componentWillMount() {
        this.setState({ errors: '' });
    }
    render(): JSX.Element {
        return (
            <main role='main' className='about_us'>             
                <form onSubmit={this._handleSubmit.bind(this)}>
                    <TextInput 
                        label='email'
                        inputName='txtInput'
                        ariaLabel='email'
                        validation={this.state.errors}
                        ref={r => this._emailAddress = r}
                    />
                    <button type='submit'>submit</button>
                </form>
            </main>
        );
    }
    private _emailAddress: HTMLInputElement;
    private _handleSubmit(event: Event): void {
        event.preventDefault();
        // this._emailAddress is undefined
        if (!Validators.isEmail(this._emailAddress.value)) {
            this.setState({ errors: 'Please enter an email address.' });
        } else {
            this.setState({ errors: 'All Good.' });
        }
    }
}
const TextInput = ({ label, inputName, ariaLabel, validation, ref }: { label: string; inputName: string; ariaLabel: string; validation?: string; ref: (ref: HTMLInputElement) => void }) => (
    <div>
        <label htmlFor='txt_register_first_name'>
            { label }
        </label>
        <input type='text' id={inputName} name={inputName} className='input ' aria-label={ariaLabel} ref={ref} />
        <div className='input_validation'>
            <span>{validation}</span>
        </div>
    </div>
);
console.logchức năng ref của bạn để xem nếu nó được gọi là