0

I want to change the icon on the button whenever it is clicked, The button has onClick event to add product to basket.

      <Button
          style={{ backgroundColor: "transparent" }}
          type="primary"
          icon={<img src={plusCart} />}
          onClick={addToBasket}
        />

3 Answers3

2
const [buttonClicked, setButtonClicked] = useState(false);

const addToBasket = () => {
  ...
  setButtonClicked(true);
};

...

<Button
  ...
  icon={<img src={buttonClicked ? someIcon : plusCart} />}
  onClick={addToBasket}
/>
Yaman KATBY
  • 1,814
  • 10
  • 24
1

You can use a boolean state for this, maybe like so:

const [buttonClicked, setButtonClicked] = useState(false);

const addToBasket = () => {
  setButtonClicked(true);
  // your code..

};

<Button
          style={{ backgroundColor: "transparent" }}
          type="primary"
          icon={buttonClicked ? <img src={otherIcon}/> : <img src={plusCart}/>}
          onClick={addToBasket}
        />
1

You can store information if button was clicked in useState hook and onClick change this state:

const [clicked, setClicked] = React.useState(false)

return(
 <Button
          style={{ backgroundColor: "transparent" }}
          type="primary"
          icon={<img src={clicked ? plusCart : minusCart} />}
          onClick={(e)=>{
           setClicked(true);
           addToBasket(e);}}
        />
)

Wraithy
  • 1,722
  • 1
  • 5
  • 13