我想將一個函數作爲一個道具傳遞給一個組件,並在其渲染函數中使用它,我似乎在這裏忽略了一個關鍵概念。如何檢查組件prop是否是React中的函數?
例如
index.jsx
render(<MyComponent d={data} showName = {d => d.name + ' ' + d.surname}/>, document.getElementById('app'));
MyComponent.jsx
class MyComponent extends React.Component {
render() {
return <h1>if (typeof this.props.showName === 'function') {
//call this.props.showName(d)
}
}
}
編輯
我希望showName prop是一個函數或一個值,並且組件不需要事先知道它。
EDIT2
關於第二個想法,我想我會建立一個組件,因此它可以同時使用功能和價值的道具,而是讓他們分開,這樣我可以更好地驗證它們。例如。我要麼使用
<MyComponent value="some value"/>
或
<MyComponent calculatedValue = {// a function}/>
感謝。如果我的組件事先不知道該函數將被調用什麼(或者一個道具實際上是否是函數)呢?我試圖建立一個靈活的組件,我會編輯我的問題。 – eagerMoose
檢查我的編輯,斷言是更高級使用的關鍵 –
我想我會使用這種方法並修改我的邏輯一點。我將使用一個值或一個函數,並且以不同的方式命名道具(例如val,valFunc)並檢查傳遞的是什麼。 謝謝! – eagerMoose