[英]How to use toLowerCase() in v-if in vue.js?
在 vue.js 中,我有以下代碼:
<q-btn @click="goEditMode" color="primary" icon="edit" label="Edit"
v-if="this.form.userName.toLowerCase() !== 'admin'" />
添加toLowerCase()后出現錯誤。
這是錯誤:
[Vue warn]: Error in render: "TypeError: Cannot read property 'toLowerCase' of undefined"
請幫助我,謝謝!
你必須刪除你的this.
在您的模板中
v-if="form.userName.toLowerCase() !== 'admin'"
演示:
Vue.createApp({ data() { return { query: 'oNe' } } }).mount('#app')
<script src="https://unpkg.com/vue@next"></script> <div id="app" class="demo"> <div v-if="query.toLowerCase().== 'one'">one</div> <div v-if="query.toLowerCase() !== 'two'">two</div> </div>
演示2:
您可以創建一個計算屬性來返回一個條件:
Vue.createApp({ data() { return { role: 'aDmIn' } }, computed: { isAdmin() { if (this.role.toLowerCase() === 'admin') { return true } else { return false } } } }).mount('#app')
<script src="https://unpkg.com/vue@next"></script> <div id="app" class="demo"> <div v-if="isAdmin">is admin</div> <div v-if="!isAdmin">is user</div> </div>
由於undefined.toLowerCase()
發生此錯誤。
看起來您正在對其父級中不存在的某些屬性運行toLowerCase
。
所以首先檢查this.form.userName
是否存在。
您可以執行類似的操作。
this.form.userName ? this.form.userName.toLowerCase() : ''
v-if="this.form.userName && this.form.userName.toLowerCase() !== 'admin'" />
你可以這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.