javascript - 将值返回给调用者函数
问题描述
我需要在状态值previewImage上设置图像 URI,但问题是该值在函数内部。我需要从函数内部获取图像 URI 并将其返回给调用者函数以将其保存在状态中。
这是被调用的组件
const ImageDisplay = (images, onPress) => {
return (
{images.map((image, index) => (
<TouchableOpacity onPress={onPress(image)}>
<Image source={{uri: image}} />
</TouchableOpacity>
))}
);
这是调用上述内容的组件
<ImageDisplay images={images} onPress={viewImage} />
这就是对它从组件内部获得的值所做的事情
const viewImage = (uri) => {
setPreviewImage(uri);
console.log(uri)
}
问题是我在控制台上看到的值不是图像的 URI,而是一堆数据,即Class {...}
如何从组件内部获取图像 URI,然后将其返回给调用方组件?
解决方案
您应该通过您的代码在第一次渲染中声明一个函数,它将运行:
const ImageDisplay = (images, onPress) => {
const pressHandler = () => onPress(image);
return (
<>
{images.map((image, index) => (
<TouchableOpacity onPress={pressHandler}>
<Image source={{uri: image}} />
</TouchableOpacity>
))}
</>
);
};
推荐阅读
- php - 与 GROUP BY 结合时,UNION 无法显示错误
- c# - 从 .dll 文件中搜索和设置 ProductVersion
- python - 如何使用两个参数对元组进行排序?
- python - 如何对具有多个参数的夹具进行参数化
- git - 用于 Github 脚本的 Powershell 中的错误 404
- postgresql - 在 PostgreSQL 函数中的变量内执行查询
- r - read_csv 无法正确获取重音符号
- vue.js - 如何正确使用 v-model 和 Composition API :value="modelValue" 语法?将 Vue2 自定义输入转换为 Vue3
- ios - 如何在进入当前日期后删除 FSCaleander 未来日期背景蓝色?
- macros - 如何使用变量引用而不是它的值,因为它在编译时为零?