У меня есть компонент Vue 'FullCart' со слотом по умолчанию, например:
<template>
<div>
<slot></slot>
</div>
</template>
Используется только для упаковки корзины на сайте Woocommerce.
<full-cart :key="componentKey">
<form>
<!-- woocommerce cart -->
</form>
</full-cart>
ПослеПри обновлении элемента в корзине представление обновляется через AJAX, и старая форма заменяется содержимым новой формы. Такое поведение обеспечивается Woocommerce и не в моих руках.
Изменяя свойство 'componentKey', после вставки нового HTML-компонента компонент FullCart повторно визуализируется, и все дочерние компоненты, присутствующие в новом HTML,предоставленный Vue. Все идет нормально. 100
Проблема заключается в том, что, как только компонент перерисовывается, любые входные элементы (например, количества элементов) сбрасываются на значения до того, как был выполнен вызов AJAX. Как будто Vue хочет сбросить в старое состояние. Значения этих входных элементов являются нереактивными данными, которых нет в моем приложении.
Итак, подведем итог:
- Измените количество элементов с 2 на 3
- Обновление корзины через AJAX
- В DOM вставлен новый HTML-код (не «Vue-way»)
- Измените componentKey для повторного рендеринга компонента
- Старые входные значениявидимый.
Кто-нибудь знает, как это исправить или как обойти это?