Now that the dateConverter
has been defined, clean up the implementation of date-display
by using the dateConverter
.
dateConverter
from date-converter.
.converter
on the date
reactive property option to an invocation of dateConverter
.navigator.language
string as an argument.date
by removing attribute: false
.reflect: true
.import {dateConverter} from './date-converter.js';
export class DateDisplay extends LitElement {
...
@property({converter: dateConverter(navigator.language), reflect: true})
date = new Date();
...
import {dateConverter} from './date-converter.js';
export class DateDisplay extends LitElement {
static properties = {
date: {converter: dateConverter(navigator.language), reflect: true},
dateStr: {type: String, attribute: 'date-str'},
};
...
dateStr
dateStr
property.willUpdate
method. (You no longer need to synchronize dateStr
with date
.)index.html
to use the date
attribute instead.export class DateDisplay extends LitElement {
@property({converter: dateConverter})
date = new Date();
render() {
return html`
<p>The given date is: ${this.date.toLocaleDateString()}</p>
`;
}
}
export class DateDisplay extends LitElement {
static properties = {
date: {converter: dateConverter},
};
constructor() {
super();
this.date = new Date();
}
render() {
return html`
<p>The given date is: ${this.date.toLocaleDateString()}</p>
`;
}
}
<date-display date="05/05/22"></date-display>
Now, the date
attribute can be properly converted to a JavaScript Date
object!