首页 > 解决方案 > 在反应js中使图像打开url onclick

问题描述

嗨,我有这段代码使用状态和钩子做出反应,我从反应 js 开始,不知道如何在不删除 useState 的情况下让我的图像将用户引导到 url onClick 事件,我认为这很容易实现。我提供了下面的代码示例,它由 3 个单独的文件组成。这是我的投资组合网站的一部分,我希望允许用户单击并转到所有图像的新标签中的 url

// filename == Portfolio.jsx
import { useEffect, useState } from "react";
import PortfolioList from "../portfolioList/PortfolioList";
import "./portfolio.scss";
import {
  featuredPortfolio,
  webPortfolio,
  mobilePortfolio,
  designPortfolio,
  contentPortfolio,
} from "../../data";

export default function Portfolio() {
  const [selected, setSelected] = useState("featured");
  const [data, setData] = useState([]);
  const list = [
    {
      id: "featured",
      title: "Featured",
    },
    {
      id: "web",
      title: "Web App",
    },

// filename == data.jsx
export const featuredPortfolio = [
  {
    id: 1,
    title: "Social Media App",
    img:
      "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKvdHn8GmPGCO0y3SJqNHACygpm0h9VycMHg&usqp=CAU",
  },
  {
    id: 2,
    title: "Rampa UI Design",
    img:
      "https://cdn.dribbble.com/users/702789/screenshots/15054318/media/4ea5d492b7b07eebc9528ff960794879.png?compress=1&resize=1200x900",
  },
 
 // filename == PortfolioList
  export default function PortfolioList({ id, title, active, setSelected }) {
  return (
    <li
      className={active ? "portfolioList active" : "portfolioList"}
      onClick={() => setSelected(id)}
    >
      {title}
    </li>
  );
}

标签: javascriptreactjsjsx

解决方案


首先,我感谢您花时间评估我的问题。

我测试了几种解决方案,最简单的一个就是在 Javascript 对象数组上包含链接,这是我在其中的 JSON 格式文件。

我将在下面添加示例代码以澄清。

export default function Works() {
  const [currentSlide, setCurrentSlide] = useState(0);
  const data = [
    {
      id: "1",
      icon: "./assets/mobile.png",
      title: "Mobile App Design",
      desc:
        "I have good mobile design skills, ready to deliver a good service to you. ",
      img:
        "https://99designs-blog.imgix.net/blog/wp-content/uploads/2018/10/attachment_100040756-e1538485934255.jpeg?auto=format&q=60&fit=max&w=930",
  // this is the line that need addition since the hooks of useState manages the onClick action
      a: "https://www.figma.com/proto/rJnb39KhEdW6lVU6zlzPtS/ElectricityCalculatorApp?node-id=9%3A0&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=9%3A0",
    },


推荐阅读