считаем, что клиент новый, но если выяснится, что он уже есть, то переключимся на его карточку
Похоже что после переключения clientDOM не переключается на карточку существующего клиента. Как Сказать что clientDOM теперь карточка с clientId??
<client-card ref="clientDOM" v-if="newClient"/>
<client-card ref="clientDOM" v-else :id="clientId"/>
const clientDOM = ref(null)
const save = () => clientDOM.value.save()
А зачем дублировать компоненты? Оставь один, а айди будет признаком того, новый клиент или нет. Есть айди - старый клиент, нет айди - новый
карточка при моунте создает ид клиента. там заполняются данные после чего идет запрос на бэк на проверку дубликата. если дубликат есть, то надо карточку пересоздать. с ид и со всеми остальными данными что прилетели с бэка те компонент надо перерисовывать в любом случае, а реф его теряется
Карточка клиента уже открыта, и после запроса выясняется, что нужно обновить данные в ней. Просто дергаем внутри метод, который будет подставлять новые данные в уже отрендеренную карточку
у тебя архитектура компонента в целом неверная - он должен уметь реагировать на изменения пропсов, а не делать что-то один раз при маунте, у тебя весь смысл от реактивности теряется поэтому лучше пересмотри ее и научись реагировать на изменение пропса костыльным решением будет повесить key на компонент и пересоздавать его при изменении clientId, но так делать не нужно
Обсуждают сегодня