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'}, }; ...dateStrdateStr 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!