javascript - 如何在 React.JS 的 onClick 事件监听器中向组件发送道具?
问题描述
单击卡片时,我想将 image_url 作为道具发送到另一个组件。以下是我的代码,但我既没有收到错误也没有发生任何事情!
// Component A whose information I want to send as props.
import React, { useEffect, useState } from "react";
import { apiDataTop, apiDataUpcoming, apiDataDay } from "../../api";
import styles from "./TopAnime.module.css";
import AnimeInfo from "../AnimeInfo/AnimeInfo";
const TopAnime = () => {
const [animeData, setAnimeData] = useState([]);
const [animeDataHype, setAnimeDataHype] = useState([]);
const [animeDataDay, setAnimeDataDay] = useState([]);
useEffect(() => {
callApi();
}, []);
const callApi = async () => {
const results = await apiDataTop();
const hypeResults = await apiDataUpcoming();
const dayResults = await apiDataDay();
setAnimeData(results);
setAnimeDataHype(hypeResults);
setAnimeDataDay(dayResults);
};
console.log(animeDataDay);
return (
<div>
<h1>Recent Release</h1>
<div className={styles.container}>
<br />
{animeDataDay === []
? null
: animeDataDay.map((anime) => {
return (
<a
href
onClick={(event) => {
event.preventDefault();
// window.location.href = `/anime/info/${animeName}`;
// Here I send info as props
return <AnimeInfo image_url={anime.image_url} />
}}
className={styles.move}
>
<img src={anime.image_url} alt="anime" />
</a>
);
})}
</div>
// The Component B
import React from "react";
import styles from "./AnimeInfo.module.css";
const AnimeInfo = (props) => {
return (
<div className={styles.container}>
<img src={props.image_url} alt="anime" />
</div>
);
};
export default AnimeInfo;
我想在触发 onClick 事件时将信息从一个组件发送到另一个组件!我没有收到任何错误。如何实现这一点,特别是当 onClick 事件被触发时
解决方案
1.创建一个状态变量来存储被点击项目的img_url
const [imgUrl,setImgUrl] = useState('')
修改组件 A 如下
<div> <h1>Recent Release</h1> <div className={styles.container}> <br /> {animeDataDay === [] ? null : animeDataDay.map((anime) => { return ( <a onClick={(event) => setImgUrl(anime.image_url)} className={styles.move} > <img src={anime.image_url} alt="anime" /> </a> ); })}</div> <AnimeInfo image_url={imgUrl} /> </div>
您可以将 </> 标签更改为其他文本标签,它会正常工作
推荐阅读
- react-native - 使用 react-router-dom 或标签React-Redirect 到外部链接
- python - 无法使用python自动点击mac
- roku - 如何在 Brightscript Roku 频道中支持印地语文本
- angular - 鼠标光标在工具提示边框下方时闪烁
- java - 类加载器或类可以在 JVM 中死掉吗?
- angular - Angular 无法读取空 DOM 单元测试的属性“nativeElement”
- python - 在 python django 中匹配来自模型的记录时出现逻辑错误
- java - LocalSessionFactoryBean.hibernateProperties.hibernate.c3p0.timeout 和 HibernateTransactionManager.defaultTimeout 之间的区别
- javascript - .filter 不是函数。尝试从 API 数据中搜索名称
- c - 在 C 中识别 char '