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 成为一个返回另一个函数的函数。
添加回答
举报