2 回答

TA貢獻1827條經驗 獲得超4個贊
您不能將帶有參數的函數傳遞給 onPress。而是定義一個箭頭函數,該函數使用像這樣的參數來執行您的 clickLocationResult。
const SearchListItem = props => {
return (
<TouchableOpacity
style={styles.searchListItemContainer}
onPress={() => props.clickLocationResult(props.primaryText)}
>
....
</TouchableOpacity>
);
};

TA貢獻1946條經驗 獲得超3個贊
你能在 HomeHeader 中發布你的 onLocationPress 函數嗎?
我懷疑你需要的是所謂的函數柯里化。有很多關于此的資源,但基本思想是您的函數將被定義為:
function onLocationPress(text) {
// this is your click handler
return () => {
// do something with that text
}
}
當您為 onPress 處理程序提供帶有參數的函數時,該函數正在執行,結果將返回給處理程序,而不是函數本身。你想要的是 onLocationPress 成為一個返回另一個函數的函數。
添加回答
舉報