Самый простой способ, которым я могу придумать, - это предсказать onGetErrorMessage
проверки состояния, которая отслеживает, была ли нажата кнопка.
<TextField
id='titleField'
value={titleValue}
required={true}
label={escape(this.props.description)}
// Only allow showing error message, after determining that user has clicked the button
onGetErrorMessage={this.state.buttonHasBeenClicked ? this._getErrorMessage : undefined}
validateOnLoad={false}
/>
Затем в вашем обработчике нажатия кнопки,просто установите это значение состояния:
private _buttonOnClickHandler() {
this.setState({ buttonHasBeenClicked: true });
return false;
}
Пока вы создаете экземпляр buttonHasBeenClicked
как false, этот метод будет отвечать требованию, что (a) до того, как пользователь нажмет кнопку, сообщения об ошибках не отображаютсяна TextField
и (b) после того, как пользователь нажмет кнопку, начнут отображаться сообщения об ошибках.Вы сохраняете возможность использовать _getErrorMessage(value)
для настройки сообщения об ошибке на основе текущего значения в TextField
.