2017-09-06 9 views
0

をReduxの形式でエラーを修正します。は例えば、私はReduxの形式でランダム成分を得た '外' から

{code...} 

    <form> 
    <Field 
     component={TextField} 
     name="firstName" 
    /> 
    </form> 

export default connect(mapStateToProps)(reduxForm({ 
    form: 'myForm', 
    validate, 
})(injectIntl(myForm))); 

そしてvalidate.jsファイル:

{code...} 

const firstName = trim(values.get('firstName')); 
if (!(firstName)) { 
    errors.firstName = 'Required'; 
} 

を変更することができイムエラーメッセージは、が必要です、または私が欲しいものがあります。

しかし、私の質問はです:私は、エラーを変更したりしても、新たな一つの条件が、validate.jsファイルを追加することができていますか?たとえば、コンポーネント内。だからファイルを変更せずに、の名前を別の名前に変更することはできますか?

ありがとうございます!

を編集します。フォームを保持するコンポーネントの指定フィールドを参照するにはどうすればよいですか?

グローバルに修正する方法はありますか?簡単な例:あなたが必要なだけ設定validationMessagesのメッセージを変更する必要がある場合は、次に

export const validationMessages = { 
    required: 'Field is required' 
} 

// ...code 

errors.firstName = validationMessages.required 

:あなたは検証メッセージを定義するために別のオブジェクトを使用することができ

globalComponent.js

{ 
    form: 'myForm', 
    error: { 
    field: 'firstName', 
    errorMsg: 'Use a capital letter!', 
    }, 
} 

答えて

0

必要なもの:

validationMessages.required = 'First name is required' 

howeve r、検証メッセージでオブジェクトを変更するのは良い解決策ではありません。 redux-form-validatorsというモジュールを使用することを強くお勧めします。

このモジュールを使用すると、簡単に検証メッセージオーバーライドすることができます。

import { required, email } from 'redux-form-validators' 

<Field 
    ... 
    validate={required()} // Will use the default required message 
> 

<Field 
    ... 
    validate={required({ message: 'Hey, the first name is required!' })} // Will override the default message 
/> 
+0

おかげで、しかしImは異なる解決策を探して、私のエラーは、例えば、APIから来ています「名前は既に取られている」ので、私は何とかそれをフィールドに注入できる必要があります。 –

+0

[SubmissionError](http://redux-form.com/7.0.4/docs/api/SubmissionError.md/)を試しましたか?サーバーが指定したフィールドにエラーを自動的に注入します。 –

関連する問題