2017-01-18 1 views
2

いくつかのmaterial-uiコンポーネントにはerrorTextがあり、エラーを表示するために使用できますが、フォームに多数のフィールドコンポーネントがある場合は、Material-UIコンポーネントによるクライアント側の検証を

マテリアルUIのコンポーネントでクライアント側の検証を処理する最善の方法を提案してください。

+0

どのように複雑になるのですか? –

答えて

2

あなたの問題は、あなたが州/店舗でたくさん管理しなければならないと思います。反応検証では一方向結合のために複雑である。

このライブラリhttps://github.com/vishalvisd/react-validatorは、material-uiコンポーネントの検証をサポートしています。一般に、これを使用してコンポーネントを検証することができます。

1

私はいくつかのHoC(Higher-order Component)アプローチを使用することをお勧めします。私はReact JSでフォーム検証のための多くのソリューションをテストしました。私が常に選択するのはreact-validation-mixinです。このexampleをご覧ください。標準入力の

例:

<input 
    type='text' 
    placeholder='Username' 
    value={this.props.username} 
    onChange={this.onChange('username')} 
    onBlur={this.props.handleValidation('username')} 
/> 

この例では、入力のvalueprops(フラックス実装と例)から来て、それはあなたがあまりにも(入力の多く)を目指しおそらく何です。 onChangethis.props.usernameが更新され、onBlurが検証チェックをトリガーするように値の変更を処理する必要があります(ユーザーが入力を終了するとエラーが表示されるようになります)。 this.props.getValidationMessages('username')

それは普遍的解決策だとあなたは別のLIBSにそれを使用することができます。エラーメッセージ、使用を得るために

。あなたが尋ねたとしてではなく、material-uiからTextFieldを取る:

<TextField 
    floatingLabelText="Username" 
    value={this.props.username} 
    errorText={this.props.getValidationMessages('username')} 
    onChange={this.onChange('username')} 
    onBlur={this.props.handleValidation('username')} 
    ... 
/> 

があなたのコンポーネントとHOCを使用してください:export default validation(strategy)(UserLogin)その方法を、あなたはpropsに必要なすべてのヘルパーメソッドを取得します。

関連する問題