我在函数中使用_.isEqual方法:
const Sidebar = ({ ...props }) => {
function myFunction(codeMenu) {
let menu = null;
const listMenu = props.listMenu;
for(var i = 0; i < listMenu.length; i++){
if(_.isEqual(listMenu[i].code, codeMenu)){
menu = listMenu[i];
}
break;
}
}
}
...
但是我有这个错误:
'_' is not defined no-undef
loadsh被导入到我的index.html中: https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js
答案 0 :(得分:1)
不是通过CDN使用lodash,而是通过npm使用它。请运行以下命令:
npm install lodash
,然后将其导入到文件
中import _ from 'lodash';
,然后使用它。实际上,更理想的导入方式是:
import isEqual from 'lodash/isEqual';
以便捆绑包中可能不包含多余的lodash包
答案 1 :(得分:0)
似乎未定义您的_
对象。您是否输入了var _ = require('lodash');
之类的lodash吗?
答案 2 :(得分:0)
您可能会收到该错误的一个原因是您的React包在lodash之前执行。在这种情况下,_
不会被添加到全局范围。
为避免此类问题,我建议放弃CDN,而是将lodash添加为package.json文件的依赖项。然后,您可以将lodash视为需求或导入。
如果将isEqual
导入为import isEqual from 'lodash/isequal'
,并且使用的是诸如Webpack之类的捆绑器,它将不会捆绑您不导入的其他lodash函数,从而大大减少了浏览器的代码量必须下载。
答案 3 :(得分:0)
您需要使用npm install命令导入lodash
完整代码如下->
import lodash from lodash
// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
const Sidebar = ({ ...props }) => {
function myFunction(codeMenu){
let menu = null;
const listMenu = props.listMenu;
for(var i = 0; i < listMenu.length; i++){
if(_.isEqual(listMenu[i].code, codeMenu)){
menu = listMenu[i];
}
break;
}
}