Задать вопрос
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Как обработать клик по каждому Counter-у в каждом дочернем компоненте?

Необходимо создать counter и слушать его изменение в каждом отдельном дочернем компоненте (counter - это пример https://reactjsexample.com/react-counter/).

Готовый counter не интересует, т.к. хочется понять именно алгоритм решения текущей задачи...

Для наглядности, набросал простой пример:

function Parent() {
  function dec() { console.log("decrement"); }
  function inc() { console.log("increment"); }
  
  return(
    <div className="childs">
      {[1, 2, 3].map((data, i) => {
        return <Child key={i} dec={dec} inc={inc} />
      })}
    </div>
  );
}

function Child(props) {
  return(
    <div className="child">
      <div className="child__decrement">-</div>
      <input type="number" className="child__input" defaultValue="0"/>
      <div className="child__increment">+</div>
    </div>
  );
}

При клике на .child__decrement необходимо увеличить значение .child__input, и уменьшить при клике на .child__increment. Обратите внимание, что таких дочерних компонентов будет несколько.

Как грамотно решить подобную задачу?
  • Вопрос задан
  • 41 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Храните значения count отдельно в каждом экземпляре Child.

Или все вместе в Parent, и передавайте их в Child вместе с функцией, которая будет устанавливать новое значение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы