Правильно ли я понимаю, что делать навигацию по DOM-дереву в React нельзя?
Правильно ли я понимаю, что в React не используется навигация по dom дереву: querySelector, closest и прочее? Если я хочу что-то получить по событию (например по клику), то я должен это передать исключительно в обработчике: onClick={() => {addToCard(item.name, item.price)}} ?
А если мне нужно прослушать событие на одной кнопке, а прочитать значение на другом конце странице, то я тоже должен это прокидывать через пропс?
Ответы (1 шт):
Надо представить, на каком уровне абстракции мы работаем.
Есть модель и представление (view-model).
addToCard -- это какая-то операция, изменяющая модель.
Вариант 1: Внутри addToCard мы про существование страницы не думаем, а дополнительные данные уже есть в модели на момент клика.
Вариант 2:
Дополнительные данные идут в addToCard аргументом.
Тогда компоненты представления могут использовать общего предка, например с помощью useContext