【问题标题】:vue.esm.js:649 [Vue warn]: Error in nextTick: "TypeError: Cannot convert object to primitive value" vuevue.esm.js:649 [Vue 警告]:nextTick 中的错误:“TypeError:无法将对象转换为原始值”vue
【发布时间】: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


    【解决方案1】:

    我也遇到了同样的问题。虽然我不知道是什么导致了问题,但我可以使用 JSON.parse(JSON.stringify(***)) 解决了

    【讨论】:

      【解决方案2】:

      答案看起来非常愚蠢,但如果有人对为什么会发生这种情况有答案,我会很乐意接受这个答案。

      问题发生在我实现代码的这行代码上:

      <template #results="{ items, loading, sort, onSort, orderedHeaders, onColumnOrderChange }">
              <order-summary :sort="sort"/>
      

      组件order-summary 没有属性sort。移除道具sort 后一切正常。

      <template #results="{ items, loading, sort, onSort, orderedHeaders, onColumnOrderChange }">
              <order-summary/>
      

      如果有人能解释为什么会发生这种情况,我很乐意接受答案

      【讨论】:

        猜你喜欢
        • 2020-06-09
        • 2019-01-10
        • 2019-10-23
        • 2018-11-19
        • 1970-01-01
        • 1970-01-01
        • 2019-06-01
        • 2021-01-12
        • 1970-01-01
        相关资源
        最近更新 更多