reactjs 如何请求具有特定值的数组?[关闭]

fdx2calv  于 2023-04-05  发布在  React
关注(0)|答案(1)|浏览(88)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

5小时前关门了。
这篇文章是编辑并提交审查20分钟前.
Improve this question
[链接] https://whimsical-lokum-0c6b46.netlify.app/
首先,请访问我的临时站点
请单击第一个视频卡并检查etag的输出
我要把它打印在我点击的页面上
我将获取包含etag的数组中objects的值

有25个objects,但我只想使用一个与我单击并移动的屏幕上的'etag'匹配的object
上图是一个object
实际的json文件中有25个objects
<App.js>

const router = createBrowserRouter([
  {
    path: "/",
    element: <Root />,
    errorElement: <NotFound />,
    children: [
      { index: true, path: "/", element: <VideoHome /> },
      { path: "/videos/:search", element: <VideoSearch /> },
      { path: "/watch/:etag", element: <VideoDetail /> },
    ],
  },
]);

export default function App() {
  return <RouterProvider router={router} />;
}

<VideoCard>

export default function Video({ id, thumbnails, title, channel, publish }) {
  return (
    <div className={styles.videocard}>
      <Link to={`/watch/${id}`}>
        <img src={thumbnails} alt={title} className={styles.thumbnail} />
        <div className={styles.titlebox}>
          <h2 className={styles.title}>{title}</h2>
        </div>
        <div>
          <span className={styles.channel}>{channel}</span>
        </div>
        <div>
          <span className={styles.publish}>{publish}</span>
        </div>
      </Link>
    </div>
  );
}

<VideoDetail>

export default function VideoDetail() {
  const { etag } = useParams();

  return <div className={styles.divbox}>{etag}</div>;
}

我想在这个详细的组件中解决

d6kp6zgx

d6kp6zgx1#

你需要的是在数组中找到一个包含特定值的元素。在你的例子中,你需要做的就是使用Array.prototype.find(cb),阅读更多here
在您的情况下,它将类似于:

export default function VideoDetail() {
  const { etag } = useParams();
  const jsonData = JSON.parse(json_reference)
  const videoData = jsonData.items.find(item => item.etag === etag)
  const thumbnail = videoData?.snippet.thumbnails.standard // note optionail chaining because if etag get screwed up, there will be no videoData
 
  return <div className={styles.divbox}>
    {etag}
    {thumbnail ? <img src={thumbnail.url} alt="" /> : null}
  </div>;
}

相关问题