Миксина перестает работать после удаления элемента через историю
Есть доска (не канвас) с элементами текст, фигуры итд. Реализовываю функционал undo/redo (vuex не используется, обычный стек). Проблема возникает когда через историю удаляю объект(фигуру) с доски. К компоненту настроек фигуры подключена миксина, в которой и происходят изменения объекта (заливка, размер итд). Короче эта миксина не меняет свойства объекта фигуры, emit-ит события наверх, но слушатель перестает работать, в общем весь механизм управления свойствами объекта перестает работать. Если выводить объект в миксине, то выводится с измененным свойством, а во vue консоли, смотрю пропсы - без изменений. Подскажите пожалуйста, в чем может быть проблема, буду очень признательна. Миксина как-будто работает со старым объектом, а не новым, переданным props
<div class="card--settings__row card--settings__row-inline">
<color-picker
:color="selectedElement.fill"
@change="setProperty('fill', $event)"
></color-picker>
</div>
Подключение миксины:
import changePropertyFunctions from "../mixins/changePropertyFunctions";
...
mixins: [changePropertyFunctions],
setProperty(propName, value){
const isRestore = arguments[3] || false;
const oldValues = Object.assign({}, this.selectedElement);
!isRestore &&
this.$editor.getHistory().addAction("changeProp", {
next: { prop: propName, value },
prev: {
prop: propName,
value: this.selectedElement[propName]
? oldValues[propName]
: ""
}
});
if (
[
"fill",
"opacity",
"fontSize",
].includes(propName)
){
for (let key in this.selectedElement) {
if (key == propName) {
this.selectedElement[key] = value;
}
}
if (propName === "fill") {
this.selectedElement.fill = value;
this.$emit("changeFill", {
id: this.selectedElement.id,
value: value
});
}
return this.$editor[
"change" +
propName.charAt(0).toUpperCase() +
propName.slice(1)
](value);
}
}