DevPrep

Все темы › SwiftUI

Как передавать данные вниз и события вверх: let, @Binding, замыкания, Environment, PreferenceKey?

Middle PRO

Суть

В SwiftUI данные текут вниз по дереву, а события — вверх. Для каждого направления есть несколько инструментов, и выбор зависит от двух вопросов: кто владеет данными и сколько уровней между отправителем и получателем.

Вниз: let-свойство (только чтение), @Binding (чтение и запись чужого состояния), Environment (неявно сквозь много уровней). Вверх: замыкание (событие-намерение), тот же @Binding (запись значения) и PreferenceKey (значения от потомков, которые собирает предок).

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store