2017-09-14 9 views
0

変更されたデータを監視しようとしていますが、動作していないようです。私がやっていることは、このカスタム要素を呼び出すビューモデルでreduxを通して状態オブジェクトを変更することです。Aurelia DataChangedがカスタム要素で起動しない

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

dataChangedこのカスタム要素で焼成されることはありませんけれども、私は私のviewmodelに(それを完全に置き換える)状態オブジェクトを変更します。

+0

btwの場合、 'bind'と' unbind'ではなく 'attached'と' detached'コールバックを使用しているはずです。 –

答えて

3

このクラスにはdataというプロパティはありません。 stateプロパティが変更されたときに通知を受けたい場合は、関数名をstateChangedにする必要があります。

関連する問題