折腾:
【已解决】vuejs中computed中调用methods函数报错:TypeError Cannot read property visibleValue of undefined
期间,希望把此处几个常用的函数,从当前vuejs提取出来,作为公共函数。
那算了,想办法把公共部分的函数提取出来
然后此处computed中调用公共函数
vue.js common method
放到:export default
试试
src/client/xxxClient/src/utils/util.js
export function getRandomIntInclusive(min, max) { // 返回随机值 含最大值,含最小值 min = Math.ceil(min) max = Math.floor(max) console.log('min=%s, max=%s', min, max) const randomValue = Math.floor(Math.random() * (max - min + 1)) + min console.log('randomValue=%s', randomValue) return randomValue } export function visibleValue(isVisible) { console.log('isVisible=%o', isVisible) const curVisibleValue = isVisible ? 'visible' : 'hidden' console.log(`${isVisible} -> ${curVisibleValue}`) return curVisibleValue }
src/client/xxxClient/src/views/dashboard/index.vue
export default { name: 'Dashboard', timer: '', // isNxmleVisibie: false, data: () => { return { // isNxmleVisibie: true isNxmleVisibie: false // nxmleVisibility: 'hidden' } }, computed: { nxmleVisibility: () => { console.log('into computed nxmleVisibility') console.log('this.isNxmleVisibie=', this.isNxmleVisibie) // return this.visibleValue(this.isNxmleVisibie) return visibleValue(this.isNxmleVisibie) }, methods: { stopUpdate() { clearInterval(this.timer) }, getRandom01() { // return this.getRandomIntInclusive(0, 1) return getRandomIntInclusive(0, 1) }, updateSwitchStatus() { const curRandom = this.getRandom01() console.log('updateSwitch: ', curRandom) } } }
结果报错,回去继续:
【已解决】vuejs中computed中调用methods函数报错:TypeError Cannot read property visibleValue of undefined
解决了后,最后就可以了。
【总结】
把公共函数放到单独文件里:
src/client/xxxClient/src/utils/util.js
console.log('isVisible=%o', isVisible) const curVisibleValue = isVisible ? 'visible' : 'hidden' console.log(`${isVisible} -> ${curVisibleValue}`) return curVisibleValue } export function getRandomIntInclusive(min, max) { // 返回随机值 含最大值,含最小值 min = Math.ceil(min) max = Math.floor(max) console.log('min=%s, max=%s', min, max) const randomValue = Math.floor(Math.random() * (max - min + 1)) + min console.log('randomValue=%s', randomValue) return randomValue } export function getRandom01() { // return this.getRandomIntInclusive(0, 1) return getRandomIntInclusive(0, 1) }
然后别的vuejs文件,导入即可使用:
src/client/xxxClient/src/views/dashboard/index.vue
... import { mapGetters } from 'vuex' import { visibleValue, getRandom01 } from '../../utils/util' export default { ... data: () => { return { isNxmleVisibie: false }, computed: { nxmleVisibility: { // getter get: function() { } }, ...mapGetters([ 'name' ]) }, ...
即可。
转载请注明:在路上 » 【已解决】vuejs中想办法把公共函数提取出来