如何在Gatsby graphql中创建fromNow字段

时间:2020-09-20 20:10:57

标签: graphql momentjs gatsby

所以我有很多事件。我想在我的Gatsby网站中将它们显示为将来的事件和过去的事件。建立时间,我需要弄清楚事件是否已经过去或仍在继续。所以我写了这个函数:

exports.setFieldsOnGraphQLNodeType = ({ type }) => {
  if (type.name === `my_event_type`) {
    return {
      fromNow: {
        type: GraphQLBoolean,
        resolve: source => {
          const { raw_date } = source.fields;
          return moment().diff(raw_date, 'days') <= 0;
        },
      },
    };
  }

  // by default return empty object
  return {};
}

这很好地确定我的活动的raw_date是否通过。 但是 ....该字段最终出现在缓存中...因此,下次构建运行时,将不会重新评估此字段,因此与上一次运行相同,该字段为true / false。因此,它一直向我显示缓存时间而非构建时间中的事件。

有什么主意如何确保在构建过程中重新评估该字段,或者如何使用另一个区分日期的函数?

0 个答案:

没有答案