3
normalizing redux fieldsの複数の関数を渡したいと思いますか?検証小道具で配列を渡すように?私たちは、この使用してクロージャを実装することができますので、我々は受け入れる関数を作成する方法redux形式の複数ノーマライザ
normalize={maxlength(5) , alphanumeric}
normalizing redux fieldsの複数の関数を渡したいと思いますか?検証小道具で配列を渡すように?私たちは、この使用してクロージャを実装することができますので、我々は受け入れる関数を作成する方法redux形式の複数ノーマライザ
normalize={maxlength(5) , alphanumeric}
のようなものを実装する
normalize={maxlength_alphanumeric(5)} //but here two logic are burried in one function
のような方法を見てReduxの形式の質問を通して
validate={[alphanumeric,maxlength]}
正規化関数の配列
検証では、すべての関数が関連していない場合、検証に失敗した場合、検証に失敗したことに注意してください。
正規化では、各正規化関数に渡される値は、すでに正規化されていた以前の関数から渡される必要があります。
だから、私たちはあなたの再来の形で今normalizeAll
を使用するには
function normalizeAll(normalizers){
return function(value , previousValue , allValues , previousAllValues){ //note that these arguments are passed by default from redux form
var i = 0;
var normalizersLength = normalizers.length;
var currentValue = value;
while(i < normalizersLength)
{
var currentNormalizer = normalizers[i];
if(typeof currentNormalizer == "function")
{
currentValue = currentNormalizer(currentValue ,previousValue , allValues , previousAllValues);
}
i++;
}
return currentValue;
}
}
//I am using only the `value` argument in normalization functions just for the example, but you can use the rest of them if they are needed
var firstNormalization = function(value , previousValue , allValues , previousAllValues){
return value+1;
}
var secondNormalization = function(value, previousValue , allValues , previousAllValues){
return value+2;
}
var thirdNormalization = function(value, previousValue , allValues , previousAllValues){
return value+3;
}
//To test result: i will execute the function returned from normalizeAll and pass the first argument as 1.
var normalizedValue = normalizeAll([firstNormalization , secondNormalization , thirdNormalization])(1);
console.log(normalizedValue); // 7
の下normalizeAll
機能を使用すると、あなたはこの
normalize={normalizeAll([firstNormalizationFunction , secondNormalizationFunction])}
これはすべての正規化関数が同期であると仮定していると私は通常、正規化関数を非同期にする必要があるユースケースを持っているとは思っていませんが、ソリューションは同じですが、次にcallback
関数promise
ありがとうございました:私のために働いた:) –
あなたは歓迎です。 –