Apollo-link-rest: 🐛 当参数值为假(0, false, null, undefined)时,Query 会抛出错误

创建于 2018-02-26  ·  4评论  ·  资料来源: apollographql/apollo-link-rest

在变量上传递0值时出现以下错误。
错误:网络错误:缺少运行查询的参数,请在查询参数中指定它或使用导出指令

相反,如果我使用字符串,它会起作用。

我已经调试了代码并在replaceParam函数中发现了问题,该函数正在检查!value在哪里(我猜😃)应该检查null / undefined值。

var replaceParam = function (endpoint, name, value) {
    if (!value || !name) {
        return endpoint;
    }
    return endpoint.replace(":" + name, value);
};

我会发PR

bug 🐛

所有4条评论

很好的捕获,打字稿方式是

if (value != null || name != null)

我期待合并你的 PR! :)

请添加单元测试,以便我们捕获任何未来的回归。

对我来说很清楚0false代表真实值而undefined是缺失值,但不确定null值。
你怎么看@fbartho?

@gaguirre抱歉,我错过了您的回复! 我按原样发送了您的代码。 我认为我们可能应该支持传入null ,并让不同的层处理它。

你见过pathBuilder函数吗? 这是用户提供的代码,可以关心undefinednull之间的区别,或者实际上可以有用地使用null

你认为我们应该开一张新票来追踪那个案子吗?

@fbartho没问题! 我同意null是一个有效的案例,我在 PR 中考虑过这一点。
唯一缺少的是undefined案例的测试用例,但我认为的行为是正确的:将抛出 _Missing parameter_ 错误。 👍

此页面是否有帮助?
0 / 5 - 0 等级