-
-
Notifications
You must be signed in to change notification settings - Fork 128
Open
Description
deepObserve observes everything deeply even if property is decorated by @observable.ref or @observable.shallow.
import {observable, makeObserable} from 'mobx'
import {deepObserve} from 'mobx-utils'
class Entity {
@observable.ref byRef?: Entity
@observable property = 0
constructor() {
makeObserable(this)
}
}
const entity = new Entity()
const dispose = deepObserve(entity, () => console.log('Change'))
entity.byRef = new Entity() // Outputs "Change" to console (expected)
entity.byRef.property++ // Outputs "Change" to console (unexpected)
dispose()import {observable} from 'mobx'
import {deepObserve} from 'mobx-utils'
class Entity {
@observable.shallow shallow: Entity[] = []
@observable property = 0
constructor() {
makeObserable(this)
}
}
const entity = new Entity()
const dispose = deepObserve(entity, () => console.log('Change'))
entity.shallow.push(new Entity()) // Outputs "Change" to console (expected)
entity.shallow[0].property++ // Outputs "Change" to console (unexpected)
dispose()MobX version: 6.3.5
MobX-utils version: 6.0.4
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels