单击下一步按钮如何更改图像

Posted

技术标签:

【中文标题】单击下一步按钮如何更改图像【英文标题】:How to change image on click of next button 【发布时间】:2022-01-05 01:34:27 【问题描述】:

在 react js 中如何编写代码:需要创建 2 个按钮下一个和上一个。当我打开浏览器时,应该显示第一个图像。单击下一个按钮时,下一张图片应与索引值一起显示。第一张图片的索引值应该是 1,第二次点击第二张图片应该显示索引值 2。第三次点击第三张图片应该显示索引值 3。点击下一个按钮图片应该改变。

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

我为你做了一个沙盒https://codesandbox.io/s/prev-next-image-wgbvx?file=/src/App.js:0-2327

从这个问题修改:Change image onClick in React Js

代码如下:

import React,  useState  from "react";
import "./styles.css";

const data = [
  
    id: "1",
    key: "1",
    img: "1.jpg"
  ,
  
    id: "2",
    key: "2",
    img: "2.jpg"
  ,
  
    id: "3",
    img: "3.jpg"
  ,
  
    id: "4",
    img: "4.jpg"
  
];

export default function App() 
  const [toggle, setToggle] = useState();
  const [visible, setVisible] = useState(true);

  return (
    <div className="App">
      <div className="buttons">
        <button
          onClick=() => 
            console.log(toggle);
            if (isNaN(toggle)) 
              prevImage = data.length;
             else 
              var prevImage = toggle - 1;
              if (prevImage <= 0) 
                prevImage = data.length;
              
            
            setToggle(String(prevImage));
            setVisible(false);
          
        >
          Previous image
        </button>
        <button
          onClick=() => 
            console.log(toggle);
            if (isNaN(toggle)) 
              nextImage = 1;
             else 
              var nextImage = parseInt(toggle) + 1;
              if (nextImage >= data.length) 
                nextImage = 1;
              
            
            setToggle(String(nextImage));
            setVisible(false);
          
        >
          Next image
        </button>
      </div>

      data.map(( id, img ) => 
        return (
          <>
            <div className="main">
              <div className="text">
                <h1
                  onClick=() => 
                    setToggle(id);
                    //setVisible(false);
                  
                >
                  id" "
                </h1>
                toggle === id ? (
                  <>
                    <p>id</p>
                  </>
                ) : null
              </div>
              <div className="img">
                visible && id === "1" ? (
                  <img src=img key=id className="photo" />
                ) : null
                toggle === id ? (
                  <>
                    <img src=img key=id className="photo" />
                  </>
                ) : null
              </div>
            </div>
          </>
        );
      )
    </div>
  );

听起来您正在尝试构建一个轮播?

这是responsive React carousel。

还有一个:Pure React carousel

【讨论】:

不尝试创建轮播。只想显示图片。 Onclicking 下一个按钮图像应与索引值一起显示 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

以上是关于单击下一步按钮如何更改图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在不单击“下一步”按钮的情况下以重力形式进入下一页

在 jqgrid 下一步按钮单击时,未填充数据

如何使用Java中的selenium从页数逐个单击“下一步”按钮

如何在python中使用selenium或scrapy单击“下一步”按钮

提交答案按钮不会进入下一步(字段集),但下一步按钮单击会

如何通过单击下一步按钮使用 Angular js 将具有不同数据的同一页面转到 laravel