描述问题:
过滤器pickBUG问题
截图或视频:
如何复现(请务必完整填写下面内容):
- 你是如何使用 amis 的?
npm - amis 版本是什么?请先在最新 beta 版本测试问题是否存在
1.5.3 - 粘贴有问题的完整
amis schema
代码:
{
"type": "page",
"body": {
"type": "form",
"debug": true,
"api": {
"url": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/form/saveForm",
"data": {
"timeStart":"${select|split|pick:0}",
"timeEnd":"${select|split|pick:1}"
}
},
"body": [
{
"type": "input-date-range",
"name": "select",
"label": "日期范围"
}
]
}
}
amis-formula中代码可能存在问题
function pickValues(names, data) {
var _a;
var arr;
if (!names || ((arr = names.split(',')) && arr.length < 2)) {
// 当前names为非string类型时,这里直接就报错了
var idx = names.indexOf('~');
if (~idx) {
var key = names.substring(0, idx);
var target = names.substring(idx + 1);
return _a = {},
_a[key] = resolveVariable(target, data),
_a;
}
return resolveVariable(names, data);
}
var ret = {};
arr.forEach(function (name) {
var idx = name.indexOf('~');
var target = name;
if (~idx) {
target = name.substring(idx + 1);
name = name.substring(0, idx);
}
setVariable(ret, name, resolveVariable(target, data));
});
return ret;
}
5条答案
按热度按时间mzmfm0qo1#
而且目前过滤器没有try catch 处理,导致很多以前的项目就直接报错了
ukqbszuj2#
pick 不能这样用,直接用 nth 就可以了
wqnecbli3#
pick 不能这样用,直接用 nth 就可以了
关键是以前很多项目内都这样使用了pick,且老版本也支持。升级到1.5.3就不行了
yyhrrdl84#
我也发现 1.5以后的版本很多不兼容问题!
r7s23pms5#
这个应该与兼容应该没有关系,我翻看了之前版本的 pick 示例与文档,没有说可以这样用,如果能用,也只能说是之前的bug