Sobes.tech
Middle

Praktická úloha: vylepšiť komponent čítača v React tak, aby pri kliknutí na tlačidlo "Zvýšiť" sa hodnota čítača zvýšila o 1 a do histórie sa pridala záznam o zvýšení s novou hodnotou; pri kliknutí na "Znížiť" — rovnako; pri kliknutí na "Reset" — história sa vymaže.

sobes.tech AI

Odpoveď od AI

Вот пример компонента React, реализующего счётчик с историей изменений и кнопками «Увеличить», «Уменьшить» и «Сбросить»:

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  const [history, setHistory] = useState([]);

  const increment = () => {
    const newCount = count + 1;
    setCount(newCount);
    setHistory(prev => [...prev, `Увеличено до ${newCount}`]);
  };

  const decrement = () => {
    const newCount = count - 1;
    setCount(newCount);
    setHistory(prev => [...prev, `Уменьшено до ${newCount}`]);
  };

  const reset = () => {
    setCount(0);
    setHistory([]);
  };

  return (
    <div>
      <h2>Счётчик: {count}</h2>
      <button onClick={increment}>Увеличить</button>
      <button onClick={decrement}>Уменьшить</button>
      <button onClick={reset}>Сбросить</button>
      <h3>История:</h3>
      <ul>
        {history.map((entry, index) => (
          <li key={index}>{entry}</li>
        ))}
      </ul>
    </div>
  );
}

export default Counter;