跟踪器重计算函数异常,RangeError:无效时间值| react, meteor,



我得到一个错误说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;

这并不一定是一个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;

最新更新