我在使用 firebase 的 Vue 应用程序时遇到了问题。我现在已经让快照正常工作,并且正在接收一个我转换为数组的对象。唯一的问题是,当我尝试过滤我得到的对象时,我得到一个“无法读取未定义的属性“indexOf””该函数正常打印出数组,看起来它看起来就像我需要的一样,我只是无法访问它包括。值得一提的是,如果我输入 0,1,2,3 而不是 i 它不会引发错误。
这是我的 Vuex 导出器,带有我的 Firebase 的快照
const users = db.ref('users')
users.on('value', function (snapshot) {
store.state.lawyers = Object.values(snapshot.val())
console.log('called')
})
export const store = new Vuex.Store({
state: {
lawyers: '',
selectedLawyerIndex: 1,
selectedCategory: 'Contracts'
},
getters: {
getLawyers: state => {
console.log('state ' + state.lawyers)
return state.lawyers
},
getCurrentLawyer: state => {
return state.lawyers[state.selectedLawyerIndex]
}
}
以及导致错误的功能:
export default {
data () {
return {
cat: this.$store.getters.getCurrentCategory,
lawyers: this.$store.getters.getLawyers
}
},
components: {
appLawyerWidget: LawyerWidget
},
methods: {
filteredLawyers () {
var arr = []
console.log(this.lawyers)
for (var i = 0; i < this.lawyers.length; i++) {
console.log(JSON.stringify(this.lawyers[i].catarray))
if (JSON.stringify(this.lawyers[i].catarray).indexOf(this.cat) >= 0) {
arr.push(i)
}
}
return arr
}
}
}
任何指针将不胜感激。谢谢!