javascript-当newValue是相同的字符串时,如何启动Watcher?
我通过将它们分配给反应对象并将观察者指向它来插入base64 images编辑器。问题是当我想两次插入相同的图像时,观察者不会触发。base64 stringstate.image
watcher:
const renderImage = (editor) => {
const unwatch = watch(() => state.image, () => {
console.log('watcher fires!')
editor.chain().focus().setImage({ src: state.image }).run()
unwatch()
state.image = null
})
}
正如你所看到的,我试图杀死观察者unwatch()并且另外设置state.image = null,但是当加载相同的图像时它仍然不会触发。
该@click事件在此元素中触发:
<button @click="$refs.image.click(); renderImage(editor)"></button>
<input type="file" ref="image" style="display: none" @change="getImageUrl">
并且dataUrl图像的创建于getImageUrl:
const getImageUrl = (event) => {
const files = event.target.files;
if (!files.length)
return;
const reader = new FileReader();
reader.onload = (event) => {
state.image = event.target.result;
};
reader.readAsDataURL(files[0]);
}
这两个元素似乎都按预期工作。
我如何让守望者开火?