adopted-ember-addons / adopted-ember-addons/ember-changeset

You attempted to update `_errors` on `changeset:[object Object]`

Offen
#573 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
425
Forks
136
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Not sure if this is a bug or a feature request - happy to provide a reproduction if needed, would really appreciate some feedback.

We have been using the following pattern in our components for a while now:

``` js
import Component from '@glimmer/component';
import Changeset from 'ember-changeset';
import lookupValidator from 'ember-changeset-validations';
import InfoValidations from '../validations/info';

export default class InfoFormComponent extends Component {
constructor() {
super(...arguments);

this.changeset = new Changeset(
this.args.model,
lookupValidator(InfoValidations),
InfoValidations
);

this.changeset.validate();
}
}
```

This causes the following deprecation warning in Ember 3.23:

```
DEPRECATION: You attempted to update `_errors` on `changeset:[object Object]`, but it had already been used previously in the same computation. Attempting to update a value after using it in a computation can cause logical errors, infinite revalidation bugs, and performance issues, and is not supported.

`_errors` was first used:

- While rendering:
application
index
info-form
```

I believe this is because internally the changeset is tracking `_errors` and it is being updated by the validate call.

How do you suggest we restructure things given we would like to immediately validate the changeset when the component is invoked?

Alternatively do you think it's worth considering adding an option to ember-changeset to immediately validate a changeset when initialized?

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.