首页 > 解决方案 > Vue.JS - nextTick 中的错误:“TypeError:无法读取未定义的属性 'badInput'”

问题描述

我收到此错误:

vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in nextTick: "TypeError: Cannot read property 'badInput' of undefined"

found in

---> <MdSelect> at src/components/MdField/MdSelect/MdSelect.vue
       <MdField> at src/components/MdField/MdField.vue
         <MdCardContent> at src/components/MdCard/MdCardContent/MdCardContent.vue
           <MdCard> at src/components/MdCard/MdCard.vue
             <MdContent> at src/components/MdContent/MdContent.vue
               <MdDialog> at src/components/MdDialog/MdDialog.vue
                 <Loading> at src/components/Loading.vue
                   <QuadroHorarioSalaNormal>
                     <Loading> at src/components/Loading.vue
                       <MdContent> at src/components/MdContent/MdContent.vue
                         <MdAppContent> at src/components/MdApp/MdAppContent.vue
                           <MdAppSideDrawer> at src/components/MdApp/MdAppSideDrawer.vue
                             <ComSidebarLayout> at src/layouts/ComSideBar.vue
                               <App> at src/App.vue
                                 <Root>

在选择中选择选项时会发生此错误:

<md-dialog :md-active.sync="showInserirDisciplina">
            <md-dialog-title><md-icon>article</md-icon> Incluir Disciplina</md-dialog-title>
            <md-content>
                <form novalidate class="md-layout" style="min-width: 500px;">
                    <md-card class="md-layout-item md-size-100 md-small-size-100">
                        <md-card-content>
                            <md-field>
                                <label for="disciplina"> Disciplina</label>
                                <md-select v-model="disciplina" name="disciplina" id="disciplina" @md-selected="carregaDisciplinasEquivalentes" class="filtro" style="color:#6361FB !important">
                                    <md-option :value="0" ></md-option>
                                    <md-option :value="c.codigoDisciplina" v-for="c in dadosDisciplinas">
                                        {{c.disciplina}}
                                    </md-option>
                                </md-select>
                            </md-field>

拜托,有人可以帮助我吗?

向所有回复致以最诚挚的问候,

标签: vue.js

解决方案


根据github 问题,这是 vue 材料代码库中的一个错误 - 看起来有人提供了 PR,因此您可以通过升级版本来修复。

就我个人而言,我按照那里的用户“bart-src”的建议快速解决了这个问题,并简单地更改了我的本地代码:

  1. 找到 node_modules\vue-material\dist\vue-material.js
  2. 搜索 isInvalidValue
  3. 换出代码:

老的:

return this.$el.validity.badInput;

新的:

return this.$el.validity ? this.$el.validity.badInput : false;

对我来说这是~1059行


推荐阅读