微信小程序使用lodasha,报错了Cannot read property 'prototype' of undefined

461 阅读1分钟

以下是我的使用流程:

第一步:

npm i lodash

第二步:

import _ from 'lodash'

第三步:(想用防抖方法)

_.debounce(async ()=>{

console.log('ss')

let searchListData = await request('/search/suggest', {

keywords: this.data.searchContent,

limit: 10

})

this.setData({

searchList: searchListData.result.songs

})

}, 2000)
然后发现报错:Cannot read property 'prototype' of undefined

于是百度解决方案:

项目下新建lib/lodash-fix.js

文件内容如下:

// 修复 微信小程序中lodash的运行环境

global.Object = Object;

global.Array = Array;

// global.Buffer = Buffer

global.DataView = DataView;

global.Date = Date;

global.Error = Error;

global.Float32Array = Float32Array;

global.Float64Array = Float64Array;

global.Function = Function;

global.Int8Array = Int8Array;

global.Int16Array = Int16Array;

global.Int32Array = Int32Array;

global.Map = Map;

global.Math = Math;

global.Promise = Promise;

global.RegExp = RegExp;

global.Set = Set;

global.String = String;

global.Symbol = Symbol;

global.TypeError = TypeError;

global.Uint8Array = Uint8Array;

global.Uint8ClampedArray = Uint8ClampedArray;

global.Uint16Array = Uint16Array;

global.Uint32Array = Uint32Array;

global.WeakMap = WeakMap;

global.clearTimeout = clearTimeout;

global.isFinite = isFinite;

global.parseInt = parseInt;

global.setTimeout = setTimeout;

再到对应文件夹引入:

import '../../lib/lodash-fix'

欸嘿报错没有了。

但是debounce里面的回调还是不执行的。

我试了lodash的数组去重方法都能用,这个防抖为啥不行嘞。