AppLocalizeBehavior в ошибке LitElement "Uncaught TypeError: Невозможно прочитать свойство 'forEach' из неопределенного" - PullRequest
0 голосов
/ 24 января 2019

Я работаю с LitElement и AppLocalizeBehavior, и у меня возникает следующая ошибка при реализации AppLocalizeBehavior в приложении LitElement

--- package.json ---

"dependencies": {
    "@polymer/app-layout": "^3.0.0",
    "@polymer/app-localize-behavior": "^3.0.1",
    "@polymer/polymer": "^3.1.0",
    "@webcomponents/webcomponentsjs": "^2.2.4",
    "lit-element": "^2.0.0-rc.3",
    "pwa-helpers": "^0.9.0",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0",
    "reselect": "^4.0.0"
  },
  "devDependencies": {
    "@polymer/test-fixture": "^4.0.2",
    "axe-core": "^3.0.0",
    "chai": "^4.1.2",
    "del": "^3.0.0",
    "gulp": "^4.0.0",
    "gulp-rename": "^1.3.0",
    "gulp-replace": "^1.0.0",
    "mocha": "^5.2.0",
    "pixelmatch": "^4.0.2",
    "polymer-cli": "^1.9.3",
    "polyserve": "^0.27.0",
    "prpl-server": "^1.4.0",
    "puppeteer": "^1.5.0",
    "wct-mocha": "^1.0.0"
  }

--- old my-app.js -

класс MyApp расширяет connect (store) (LitElement) { ....

--- AppLocalizeBehavior my-app.js ---

import {mixinBehaviors} из '@ Polymer / Polymer / Lib / Legacy / Class.js'; import {AppLocalizeBehavior} из @ Полимер / приложение-локализуются-поведение / приложение-локализуются-behavior.js ';

класс MyApp расширяется подключиться (сохранить) (mixinBehaviors ([AppLocalizeBehavior], LitElement)) { .....

----- ОШИБКА --------------

updating-element.ts:487 Uncaught TypeError: Cannot read property 'forEach' of undefined
    at HTMLElement._saveInstanceProperties (updating-element.ts:487)
    at HTMLElement.initialize (updating-element.ts:467)
    at HTMLElement.initialize (lit-element.ts:130)
    at new UpdatingElement (updating-element.ts:230)
    at new LitElement (lit-element.ts:76)
    at new PropertiesChanged (properties-changed.js:170)
    at new PropertyAccessors (property-accessors.js:115)
    at new TemplateStamp (template-stamp.js:125)
    at new PropertyEffects (property-effects.js:1195)
    at new PropertiesMixin (properties-mixin.js:115)

1 Ответ

0 голосов
/ 09 марта 2019

У меня была та же проблема с IronValidatorBehavior.

Не работает с PolymerElement и LitElement

class EmailValidator extends mixinBehaviors([IronValidatorBehavior], PolymerElement)


class EmailValidator extends mixinBehaviors([IronValidatorBehavior], LitElement)

Вот рабочий код для IronValidatorBehavior.

E-mail-validator.js

import {IronValidatorBehavior} from '@polymer/iron-validator-behavior/iron-validator-behavior';
import {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';
import {isValidEmail} from '../../utils/EmailValidator'

Polymer({
is: 'email-validator',

behaviors: [IronValidatorBehavior],

validate: function (value) {
    return isValidEmail(value);
}

});

Затем в главном компоненте.

import './validation/email-validator';

<email-validator id="email-validator"></email-validator>
<paper-input id="email" alwaysFloatLabel auto-validate required error-message="Invalid Email" validator="email-validator" value="${this._email}"  @change=${(e) => this._email = e.target.value} label="Email"></paper-input>
...