0
我製作了一個名爲IconButton
的組件,它需要一些道具並傳遞任何額外的道具。爲什麼不是我的道具日誌記錄或在React Native中傳遞?
import Icon from 'react-native-vector-icons/FontAwesome';
const IconButton = ({ icon, title, ...props }) => {
console.log(props); // Actual: {}, expected: { onPress: [function] }
return (
<View style={ iconBox } { ...props }>
<Icon name={ icon } size={ 48 } color="black" />
<Text>{ title }</Text>
</View>
};
然後我渲染它:
const render =() => (
<IconButton icon='plus' title='add' onPress={() => console.log('hi') } />
);
然而,當我試圖用console.log
記錄它,onPress
沒有露面;它記錄了一個空的對象。此外,它沒有傳遞給我的View
,因爲它沒有按下時調用onPress
。但是當我傳遞不同類型的道具時,例如數字和字符串,它顯示得很好。
爲什麼它不被傳遞給我的View
,爲什麼不記錄道具?如果這可能會影響任何事情,我也使用世博會。我已經設置了一個問題on GitHub。
這是非常令人沮喪的,因爲沒有人似乎在Google上遇到過這個問題......爲什麼只有我自己似乎無法通過道具傳遞函數...... –
不確定實際問題,但我通常會在父'onPress = {this.props.onPress}'上引用道具。這樣做的好處是,你知道你期望的道具,而不是一切通過。 –
同意。我添加了一段允許回調的示例代碼。 我會發布我的完整代碼,但我有一種感覺,這是因爲我的一個進口產品或某些東西正在破壞React本機的工作方式......像矢量圖標可能...... –