所以我有一个问题,我在 ramda.js 中有两个函数,它们看起来像这样:
const getDayName = flip(nth)(['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'])
const formatDay = ifElse(isNil, always(''), pipe(dec, getDayName, i18n.t('views.routing.dialogs.${__}')))
第一个函数通过索引返回当天的名称,第二个函数接受当天的 id,如果为 null,则返回空字符串,否则将 id 减 1,因为索引从 0 开始,id 从 1 开始。
然后通过管道传递给getDayName,返回日期名称,然后在i18n.t函数中使用日期名称,该函数用于以日期名称为键翻译日期
但是我有一个问题,当我使用这个函数时,我从 ramda 收到一个错误:g.call 不是一个函数,我认为这个错误来自管道中的
i18n.t()
,我该如何修复它?
我无法在管道中显式传递参数,例如
dayName => ...
,所以我应该只使用 ramda 中的 R.__
占位符
R.pipe
需要函数,将 R.__
添加到模板字符串不会将其转换为函数。
创建一个包装
translate
的 i18n.t()
函数,并使用 dayName
: 调用它
const translate = dayName => i18n.t(`views.routing.dialogs.${dayName}`)
并在管道中使用它:
pipe(dec, getDayName, translate))