Увеличьте часть URL-адреса при нажатии кнопки в ReactJS

#reactjs #redux #jsx #use-state

Вопрос:

Я создаю веб-приложение, которое в основном представляет собой галерею изображений для браузерной игры. Аватары хранятся в игре в таком формате:

https://websitelink.com/avatar/1

https://websitelink.com/avatar/2

https://websitelink.com/avatar/3

Поэтому я хочу создать 2 кнопки навигации, одна из которых увеличит счетчик, чтобы перейти к следующему изображению, а другая уменьшит счетчик, чтобы перейти к предыдущему изображению. Я пытался использовать реквизит, но, поскольку реквизит неизменен, это не сработало.

Как мне подойти к созданию этого веб-приложения?

Комментарии:

1. Пожалуйста, добавьте фрагмент кода, который вы пробовали. Таким образом, другие могут иметь представление о том, что вы сделали неправильно или чего не хватает

Ответ №1:

Вот минимальный код , который может помочь вам разобраться в React Component , props и state .

 // parent compoment import { useState } from "react"  export const GameImageGallery = () =gt; {  const [num, setNum] = useState(0)  const increaseDecrease = (state) =gt; {  if (state === " ") {  setNum(num   1)  }  if (state === "-") {  setNum(num - 1)  }  }  return (  lt;gt;  lt;button onClick={() =gt; increaseDecrease("-")}gt;--lt;/buttongt;  lt;button onClick={() =gt; increaseDecrease(" ")}gt;  lt;/buttongt;  lt;Image url={`https://websitelink.com/avatar/${num}`} /gt;  lt;/gt;  ) }  
 // child component to show image const Image = ({ url }) =gt; {  return lt;img src={url} alt="image" /gt; }  

Ответ №2:

ты можешь сделать это,

 const [id,setId]=useState(0);  useEffect(() =gt; {  },[id])  const increment = () =gt; {  setId(id  );  } const decrement = () =gt; {  setId(id--);  }   return(  lt;button onClick={increment}gt;Addlt;/buttongt;  lt;button onClick={decrement}gt;removelt;/buttongt;  lt;img url={`https://websitelink.com/avatar/${id}`} /gt; )  

Ответ №3:

useRef идеально подходит для постоянного управления данными в компоненте.

Пример:

 import { useRef } from 'react' ... const App = () =gt; {  const links = useRef({url1Ctr : 1})  const onBtnClick = () =gt; {  links.current = { url1Ctr: links.current.url1Ctr   1}  }  ... }