2017-06-13 8 views
0

フォームの1つでは、入力フィールドに10進数を表示する必要があります。この要件は、小数の両方のロケールをサポートすることです(12.512,5)。 normalizeメソッドを使用しようとしているので、値を数値として保持する必要があります。redux-form正規化によるローカライゼーションのサポート

function normalize(value: string) { 
 
    return +value 
 
    .replace(/^[0]+/, "") // numbers can't start with a zero 
 
    .replace(/[^\d.,]/, "") // decimals allowed digits and . , 
 
    .replace(/[,]/,"."); // actual numbers are saved with . 
 
}

問題はReduxの-フォームが表示および保存のための差分値を表示することはできませんので、それは.のためではなく、,のために働くということです。

値を文字列として保存し、formatメソッドを使用して値を変更することもできますが、このデータをサーバーに送信する必要がある場合は、数値でなく文字列でなければなりません。

値を数値として保存することができますが、,.をサポートできる優れたソリューションがありますか?

答えて

0

The Redux Form Value Lifecycleをよく読んでください。に使用parse

  • 入力のためにローカライズされた文字列にReduxのストアから番号を回すために使用format Reduxの店で数として
    1. ストアデータ:あなたの質問に答えるために

      ユーザー入力をreduxストアの番号に変更します。

    2. 値に書式設定または制約を適用する必要がある場合は、normalizeを使用します。を入力します。 th完全な「魔法のオートフォーマットでの経験」の電子再来店

    はあなたがReduxのストア内の文字列として番号を保存し、フォームの送信時に番号にそれを解析する必要があります、this exampleで見ることができます。

  • 関連する問題