Javascript 瞬间JS-isAfter返回。isAfter不是函数吗?

Javascript 瞬间JS-isAfter返回。isAfter不是函数吗?,javascript,reactjs,momentjs,Javascript,Reactjs,Momentjs,我的React组件内部有问题。我试图只显示未来或今天即将出现的数据。但我得到了这个错误: .isAfter在我使用该格式时不是函数 没有格式,但我得到了错误的数据 简而言之:我只想显示即将到来的事件 我的代码: showData = () => { const { checks } = this.props; return ( this.state.opendagen.length > 0 && this.state.

我的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;
        })
    );
};
showData=()=>{
const{checks}=this.props;
返回(
this.state.opendagen.length>0&&
this.state.opendagen.map((值,索引)=>{
const{opendag_data:datum}=值;
常数日期=力矩(基准'DD/MM/YYYY')。格式'DD/M/YYYY');
const now=Moment().format('DD/M/YYYY');
log('vandaag:',now,'data:',date);
常数concatData=[
…(value.opendag_department+'-'),
…(value.opendag_data+'-'),
…value.opendag_链接,
];
返回日期。是否晚于(现在)(
{value.opendag_data}
{value.opendag\u department}
):null;
})
);
};

由于您在此处使用了
格式,因此
日期
变量不是
时刻
对象

const date = Moment(datum, 'DD/MM/YYYY').format('DD/M/YYYY');
矩对象上的format方法返回一个格式化字符串,因此您的
date
变量只是一个字符串。

矩().format()
将返回一个字符串。字符串不会响应
isAfter()

您需要将格式化的日期分配给另一个变量,或者只在希望显示的点对其进行格式化:

const date = Moment(datum, 'DD/MM/YYYY');
const now = Moment();

return date.isAfter(now) ? ( // <-- this now works 
  ...
const date=力矩(基准'DD/MM/YYYY');
const now=力矩();

返回日期。是否晚于(现在)?(//当您调用
format
时,您可以将该时刻转换为字符串。尝试删除
.format('DD/M/YYYY')
,然后查看是否有效。使用
moment(date,'DD/M/YYYY')。isAfter(now)
将sting转换为moment对象。