javascript - Moment JS - isAfter 返回 .isAfter 不是函数吗?
问题描述
我的 React 组件内部有问题。我试图只显示未来或今天即将到来的数据。但我得到这个错误:
.isAfter 不是我使用格式时的功能。
没有它可以工作的格式,但我得到错误的数据。
简而言之:我只想显示即将发生的事件。
我的代码:
showData = () => {
const { checks } = this.props;
return (
this.state.opendagen.length > 0 &&
this.state.opendagen.map((value, index) => {
const { opendag_data: datum } = value;
const date = Moment(datum, 'DD/MM/YYYY').format('DD/M/YYYY');
const now = Moment().format('DD/M/YYYY');
console.log('vandaag:', now, 'data:', date);
const concatData = [
...(value.opendag_department + ' - '),
...(value.opendag_data + ' - '),
...value.opendag_link,
];
return date.isAfter(now) ? (
<tr key={index}>
<td data-th="Datum">{value.opendag_data}</td>
<td data-th="Opleiding">
<strong>{value.opendag_department}</strong>
</td>
<td data-th="Link">
<a
target="_blank"
rel="noopener noreferrer"
href={value.opendag_link}>
bekijk website
</a>
</td>
<td data-th="Select">
<CheckBox
thisClassName="data__checkbox checkbox__input"
value={concatData.join('')}
id={'string_' + index}
onChange={checks}
/>
</td>
</tr>
) : null;
})
);
};
解决方案
date
变量不是moment
对象,因为您在这里format
使用过
const date = Moment(datum, 'DD/MM/YYYY').format('DD/M/YYYY');
moment 对象上的 format 方法返回一个格式化的字符串,所以你的date
变量只是一个字符串。
推荐阅读
- if-statement - 如何在arduino上打开泵
- ios - “GIDSignIn”类型的值没有成员“hasAuthInKeychain”
- python - 基于另一列的计算创建一列
- mysql - 使用 JOIN 的 SQL 查询计数
- node.js - Express Server 连续抛出 404 错误
- git - GIT:如何将 Readme.md 文件从 master 复制到 Branch?
- generics - 包含闭包参数的方法需要错误的类型?
- python - 如何在 XML Python 中再迭代一个节点?
- python - 显示外键值
- ansible - azure_rm_dnszones 找不到资源组