を通じてコンポーネントに関数のリストを渡すと、あなたは、以下の機能(またはそれ以上)を持っているとしましょう:小道具
function hasValue(element) {
return (element.value && element.value.length);
}
function isLongerThan(element, minLength){
return element.value.length > minLength;
}
あなたが小道具を通じてコンポーネントに機能のリストとしてこれらを渡すしようとする方法?
私が何かしようとしました:
<MyInputComponent runThese={[hasValue, isLongerThan]} />
それとも
<MyInputComponent runThese={[() => hasValue(),() => isLongerThan()]} />
をしかし、機能が動作するように、他のパラメータと一緒に、(MyComponentのの子ノードである)element
パラメータを必要とします。
ご協力いただければ幸いです。ありがとう!あなたは構文
ここ<MyInputComponent runThese={[(element) => hasValue(element), (element) => isLongerThan(element, 23)]} />
次使用することができます
以上の長さになるまであなたはログインして
false
が表示されますか? 'if(this.props.runThese [0](el))...'これらの関数はスコープ外のものにアクセスしていないので、うまく動作するはずです。関数のパラメータは、呼び出し時に設定されます。 ''関数は要素パラメタ ''が何の意味も持たないことを要求します。 –'[hasValue、isLongerThan]'は問題ありません。関数を適切に呼び出すだけです。 –
@ChrisG @FelixKing最初の解決策で 'minLength'を' isLongerThan'にどのように渡しますか? 'runThese'配列には、わずかに異なるパラメータを必要とする多種多様な関数が含まれていることに注意してください。 – o01