Ich versuche, geänderte Daten zu beobachten, aber es scheint nicht zu funktionieren. Was ich tue ist das Ändern des Statusobjekts durch Redux in einem Ansichtsmodell, das dieses benutzerdefinierte Element aufruft.Aurelia DataChanged nicht in benutzerdefinierten Element ausgelöst
import React from 'react';
import ReactDOM from 'react-dom';
import { customElement, inject, bindable, noView } from 'aurelia-framework';
import Groups from './groups-react/groups-container.jsx';
@noView()
@inject(Element)
@bindable('state')
@bindable('modalService')
@bindable('childViewState')
@customElement('groups-react-element')
export class GroupsReactElement {
reactComponent = {};
constructor(element) {
this.element = element;
}
render() {
this.reactComponent = ReactDOM.render(<Groups state={this.state} modalService={this.modalService} childViewState={this.childViewState}/>, this.element);
}
bind() {
this.render();
}
unbind() {
ReactDOM.unmountComponentAtNode(this.element);
}
dataChanged(newVal) {
this.bind();
}
}
Wenn ich ändere den Zustand Objekt in meinem Viewmodel (es vollständig zu ersetzen), obwohl datachanged nie in diesem kundenspezifischen Elemente ausgelöst wird.
BTW, Sie sollten wahrscheinlich die 'Attached' und' detached' Callbacks für diese anstelle von 'bind' und' unbind' verwenden. –