比方說,你有以下功能(或更多):傳遞的功能清單,組件通過道具
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()]} />
但功能需要element
參數(這是爲MyComponent的子節點),以及其他參數工作。
任何幫助,將不勝感激。謝謝!
當你嘗試的第一個解決方案,你是怎麼計算它不會工作方式還大嗎? 'if(this.props.runThese [0](el))...'應該可以正常工作,因爲這些函數沒有訪問任何超出範圍的東西。函數的參數是在你調用它的時候設置的; ''函數要求元素參數「'沒有任何意義。 –
'[hasValue,isLongerThan]'很好,你只需要正確地調用函數。 –
@ChrisG @FelixKing第一個解決方案如何將'minLength'傳遞給'isLongerThan'?請記住'runThese'數組可能包含各種各樣的函數,所有這些函數都需要稍微不同的參數。 – o01