我这样调用函数:

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])

09-18 02:22