Javascript 将导入的函数与eval一起使用
我这样调用函数:Javascript 将导入的函数与eval一起使用,javascript,express,ecmascript-6,eval,ecmascript-2016,Javascript,Express,Ecmascript 6,Eval,Ecmascript 2016,我这样调用函数: import {required, maxLength} from 'utils/validation'; import sitesForm from './sites.json'; import productForm from './product.json'; var validateSite = {}; for(var group in sitesForm ) { var groupObj = sitesForm[group]; for(var el
import {required, maxLength} from 'utils/validation';
import sitesForm from './sites.json';
import productForm from './product.json';
var validateSite = {};
for(var group in sitesForm ) {
var groupObj = sitesForm[group];
for(var el in groupObj ) {
console.log(eval('required'))
validateSite[groupObj[el].name] = groupObj[el].rules.map(eval)
}
}
//utils/validation.js
export function required(value) {
if (isEmpty(value)) {
return 'Champs requis';
}
}
我得到一个错误,表示未定义required,在我的json中,我得到了以下规则数组:
“规则”:[“必需”]
但是,代码中的console.log(必需)显示:[函数:必需]
您知道为什么不能将eval与required一起使用吗?如果您只想调用命名函数,应该使用索引器表示法:
import validators from 'utils/validation';
validateSite[groupObj[el].name] = groupObj[el].rules.map(s => validators[s])
不要使用
eval
。你想做什么?是的,eval
将返回内部代码的结果eval('required')
与required
基本相同,required
是一个函数。您应该做的是eval('required()')
,但实际上您应该跳过eval
!-<代码>必需()。你为什么需要它?哦,那太好了,它的工作原理是这样的:从“utils/validation”导入*作为验证器;然后我调用了这个validateSite[groupObj[el].name]=groupObj[el].rules.map(s=>validators[s]),谢谢