javascript - 如何从 React Img 组件中获取值
问题描述
我不断从'handleClickVideo'中的console.log得到未定义。如何从正确点击视频中获得价值?我也尝试使用 div 但是 div 没有 value 属性。我认为Img虽然做到了。
const Videos = ({ videos }) => {
const handleClickVideo = (event) => {
console.log(event.target.value)
}
return (
<>
<h2 className="title is-5">Videos</h2>
<div className="columns is-multiline">
<VideoModal
videoOpen={videoOpen}
setVideoClose={handleClickVideo}
/>
{
videos.map((video, key) => {
return (
<div className="column is-one-third">
<div className={styles.thumbnail}>
<Img src={`https://img.youtube.com/vi/${video.link}/0.jpg`} onClick={handleClickVideo} value={video.link}/>
</div>
<p className={styles.videoTitle}>Green Book Official Trailer</p>
</div>
)
})
}
</div>
</>
)
}
解决方案
你正在打电话handleClickVideo
但VideoModal
没有VideoModal
任何value
,所以它会undefined
在你的回调中
<VideoModal
videoOpen={videoOpen}
setVideoClose={handleClickVideo}
/>
你可以让你的回调函数接受一个值:
const handleClickVideo = (video) => {
console.log(video)
}
然后更新你的渲染功能:
<VideoModal
videoOpen={videoOpen}
setVideoClose={() => handleClickVideo(0)}
/>
<Img
src={`https://img.youtube.com/vi/${video.link}/0.jpg`}
onClick={()=>handleClickVideo(video.link)}
/>
推荐阅读
- r - 如何创建一个分层样本,其中一组占 20%,另一组占 10%
- python-3.x - 首次打开窗口时无法单击 Tkinter 文本框
- node.js - 在 nodejs 中使用 node-record-lpcm16 的 IBM Speech to Text
- python - 将小部件添加到 Tkinter 颜色选择器
- javascript - 如何使用 express.js 将文件传递到我的服务器
- ios - 如何在同一个容器中解码 DynamicKeys 和 CodingKeys?
- javascript - 当我发送带有图像的发布请求时得到这个:错误:请求失败,状态码 409
- node.js - 如何让 cosmosdb 触发一个 azure 函数并调用另一个 http 函数
- sql - 得到 20 条 sql 查询的最佳 8 条结果?
- python - 'str' 对象在使用按类查找元素时不可调用 | 蟒蛇硒