.set path error

Aperta
#2 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@vkalpias ci sta già lavorando.

Dal 4/9/2021.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug

There seems to be a bug with paths in the Observer.

The following code:

const o = new Observer({});
o.on('*:set', (path, value, oldValue) => {
    console.log(`${path} = ${JSON.stringify(value)}`);
});
o.set('theParent.0.child', { x: 1, y: 2 });

Gives output:

theParent.0.child.child.x = 1
theParent.0.child.child.y = 2
theParent.0.child.child = {"x":1,"y":2}

Notice the third path should be theParent.0.child.

Looking at Observer's internal node tree suggests that all paths set here are incorrect. I believe the line should read:

    _path: keys.slice(0, i).join('.')

Interestingly, if theParent.0.child is set to an atomic value before assigning an object then the resulting paths appear correct. However in this case '*:set' events don't propagate up the parent tree.

Lingua principale
TypeScript
Stelle
26
Fork
11
Merge medio
1g 21h
PR unite (30g)
5

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di playcanvas/observer

Tutte le issue di playcanvas/observer

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.