今天編程時(shí),JavaScript 程序報(bào)了這樣的錯(cuò)誤:Cannot use 'in' operator to search for...,具體錯(cuò)誤信息如下:

坦白說(shuō),這樣的錯(cuò)誤最難調(diào)試。因?yàn)樗⒉恢赶蚰闼鶎?xiě)的具體代碼,而是泛泛指向了 lib.js 文件(該文件通常是第三方的打包壓縮庫(kù)),你幾乎無(wú)法依據(jù)錯(cuò)誤類型與錯(cuò)誤指向來(lái)定位到實(shí)際編程中的錯(cuò)誤位置。
怎么辦?
這個(gè)時(shí)候,只有發(fā)揮“死磕”精神了!
死磕步驟:
依據(jù)故障頁(yè)面以及錯(cuò)誤信息,定位到出錯(cuò)的文件,這一點(diǎn)應(yīng)該不難;
在出錯(cuò)的頁(yè)面中,依次點(diǎn)擊調(diào)試,看一看在哪一步開(kāi)始報(bào)錯(cuò) 了!很關(guān)鍵!比如,一開(kāi)始加載就出錯(cuò)了,那就定位到 js 文件的初始化部位;點(diǎn)擊某個(gè)按鈕出錯(cuò)了,那就定位到該按鈕的對(duì)應(yīng)事件代碼中;以此類推。
在定位的代碼范圍內(nèi),采用“折中法”,一點(diǎn)點(diǎn)注釋掉,刷新頁(yè)面查看是否依然出錯(cuò),如果出錯(cuò),這說(shuō)明注釋掉部分的代碼沒(méi)有問(wèn)題,放開(kāi)注釋,繼續(xù)其他可疑的代碼部分;如果沒(méi)有錯(cuò)誤了,恭喜你,你的定位位置就更加精細(xì)化了!總體思路就是如此,循環(huán)往復(fù),相信,總會(huì)有“撥開(kāi)云霧見(jiàn)朗朗青天”的歡喜的!
console.log('rendernerererer: ', schoolData)const schoolNode = ( <Select style={{width: '100%'}} placeholder="請(qǐng)選擇所屬學(xué)校"> { schoolData.length && schoolData.map((item, idx) => ( <Option key={idx} value={`${item.id}`}>{item.name}</Option> )) } </Select>); 
可以看到,rendernerererer 正確打印了出來(lái),問(wèn)題出在該行代碼之后:
const schoolData = this.state.schoolList;console.log('rendernerererer: ', schoolData) const schoolNode = ( <Select style={{width: '100%'}} placeholder="請(qǐng)選擇所屬學(xué)校"> { schoolData.length ? schoolData.map((item, idx) => ( <Option key={idx} value={`${item.id}`}>{item.name}</Option> )) : <Option value=''>請(qǐng)選擇...</Option> } </Select>);const schoolData = this.state.schoolList;console.log('rendernerererer: ', schoolData) const schoolNode = ( <Select style={{width: '100%'}} placeholder="請(qǐng)選擇所屬學(xué)校"> { schoolData.length ? schoolData.map((item, idx) => ( <Option key={idx} value={`${item.id}`}>{item.name}</Option> )) : null } </Select>);以上這篇JavaScript 程序錯(cuò)誤Cannot use 'in' operator to search的解決方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注