【问题标题】:Exception from Tracker recompute function, RangeError: Invalid time value | react, meteor,Tracker 重新计算函数异常,RangeError:无效时间值 |反应,流星,
【发布时间】:2022-12-09 08:20:46
【问题描述】:

我收到一条错误消息 Exception from Tracker recompute functionRangeError: Invalid time value

问题是有时 card 得到 undefined 因为它是未定义的,我不能运行这个:const dateFormat = isThisYear(createdAt) ? "MMM d" : "MMM d, yyyy";

有没有办法只在卡片有价值时才执行dateFormat

import React from "react";
import Child from "./Child";
import { format, isThisYear } from "date-fns";

const Sample = ({ card }) => {
  const { createdAt, title } = card || {};

  const dateFormat = isThisYear(createdAt) ? "MMM d" : "MMM d, yyyy";
  const createdDate = format(createdAt, dateFormat);

  return (
    <>
      <Child createdDate={createdDate} />
    </>
  );
};

export default Sample;

【问题讨论】:

    标签: reactjs meteor date-fns


    【解决方案1】:

    这不一定是一个 Meteor.js 问题,但更像是一个普通的 javascript 问题,您应该在返回变量之前检查变量的真实性。 createdAt 和(或)title 在这种情况下。 我可能会按照以下方式处理您的情况。

    import React from "react";
    import Child from "./Child";
    import { format, isThisYear } from "date-fns";
      
    const Sample = ({ card }) => {
      const { createdAt, title } = card || {};
      if (createdAt) {
        const dateFormat = isThisYear(createdAt) ? "MMM d" : "MMM d, yyyy";
        const createdDate = format(createdAt, dateFormat);
      }
      if (createdDate) {
        return (
         <>
           <Child createdDate={createdDate} />
         </>
        );
      } else {
        return (
         <>
           <Child createdDate={} />
         </>
        );   
      }
    };
      
    export default Sample;
    

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 2021-08-30
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多