Я исправил это, взяв предложение из верхнего ответа на этот вопрос и заморозив мой экземпляр класса перед тем, как передать его Vuex.
const store = new Store<AppState>({
state: {
editor: Object.freeze(editorState), // freeze because Vue reactivity messes it up
filename: null,
metadata: {}
},
mutations: {
updateDocument(context, transaction: Transaction) {
console.log("updateDocument called");
// freeze again
context.editor = Object.freeze(context.editor.apply(transaction));
}
},
strict: process.env.NODE_ENV === "development"
});
Поскольку Object.freeze
не является рекурсивным, это не влияет на внутреннюю работу ProseMirror, но не позволяет Vue пытаться изменить объект.