Aurelia DataChanged不会在自定义元素中触发

时间:2017-09-14 15:24:56

标签: aurelia

我正在尝试观察已更改的数据,但它似乎并没有起作用。我正在做的是在调用此自定义元素的视图模型中通过redux更改状态对象。

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();
  }
}

当我在viewmodel中更改状态对象(完全替换它)时虽然dataChanged从未在此自定义元素中触发。

1 个答案:

答案 0 :(得分:4)

此课程没有data属性。如果您希望在state属性发生更改时收到通知,则需要将函数命名为stateChanged