我创建了一个小助手类:
import React from 'react';
import Format from '/imports/helpers/format.js';
export default class ListingCard extends React.Component {
render() {
return (
<div className="card">
{Format.formatDate(this.props.listing.created_at)}</div>
</div>
)
}
}
我试图在JSX模板中调用它:
municipalite
使用WebStorm,找到Format类。但方法不是。
ListingCard.jsx:22未捕获的TypeError:_format2.default.formatDate不是函数
知道为什么吗?
答案 0 :(得分:3)
您需要使用static
关键字来声明类方法。
export default class Format {
static formatDate(date) {
return moment(date);
}
}
原因是,如果您不使用static
关键字,formatDate
将是实例方法,这意味着该方法仅适用于类的实例。
// e.g., how to use an instance method
var f = new Format();
f.formatDate(someDate);
@loganfsmyth发表了一篇好评;这是我在原来的答案中没有考虑过的事情。
如果您不打算将Format
作为一个班级使用,那么宣布它是没有意义的。
// format.js
import moment from 'moment'
export function formatDate(date) { return moment(date); }
// otherfile.js
import {formatDate} from './format';