【发布时间】:2020-12-09 17:57:29
【问题描述】:
我收到以下警告 [Vue warn]: Error in nextTick: "TypeError: Cannot convert object to primitive value",然后是错误 TypeError: Cannot convert object to primitive value。
在商店中设置对象时会发生这种情况。数据在存储中设置正确,问题似乎发生在nextTick 发生后的页面渲染中。
错误的控制台日志显示:
at baseSetAttr (vue.esm.js:6811)
at setAttr (vue.esm.js:6786)
at Array.updateAttrs (vue.esm.js:6740)
at patchVnode (vue.esm.js:6312)
at updateChildren (vue.esm.js:6188)
在vue.esm.js:6811 文件中,我得到以下信息:
function baseSetAttr(el, key, value) {
if (isFalsyAttrValue(value)) {
el.removeAttribute(key);
} else {
// #7138: IE10 & 11 fires input event when setting placeholder on
// <textarea>... block the first input event and remove the blocker
// immediately.
/* istanbul ignore if */
if (isIE && !isIE9 && el.tagName === 'TEXTAREA' && key === 'placeholder' && value !== '' && !el.__ieph) {
var blocker = function (e) {
e.stopImmediatePropagation();
el.removeEventListener('input', blocker);
};
el.addEventListener('input', blocker); // $flow-disable-line
el.__ieph = true;
/* IE placeholder patched */
}
el.setAttribute(key, value); <--- The error happens here
}
}
我希望我可以为这个问题提供更多详细信息,但我不知道这个错误在我的代码上直接发生在哪里或为什么会发生。我有两个页面使用相同的服务,一个正确呈现,另一个发生此错误。我已经查看并确保两个页面完全相同,但这只发生在一个页面中
【问题讨论】:
标签: javascript vue.js vuejs2