3

コールバック内の親コンポーネントから子コンポーネントのインスタンス変数を設定しようとしています。デバッガーを使用すると、コールバックでインスタンス変数が正しく設定されていることがわかりますが、子コンポーネントをレンダリングすると、変更が子コンポーネントに反映されません。

それで、海辺の別のコンポーネントからコンポーネントの状態を変更することは違法ですか、それとも何か間違ったことをしていますか?

コード例:

MyParentComponent>> initialize
    super initialize.
    child := MyChildComponent new.

MyParentComponent>> renderContentOn: html 
  html render: child.   
  html anchor
     callback: [ 
        child property: 'Something'.
    ] ; with 'Navigate'.

MyParentComponent>> children 
  ^ Array with: child
4

2 に答える 2

4

super initialize私が推測する親コンポーネントのいくつかが欠けています。

また、この方法で作業しないことをお勧めします。

MyParentComponent>>childでやる

  ^ child ifNil: [ child := MyChildComponent new ]

また、やらないでくださいhtml render: childbut html render: self child。そうすれば、コンポーネントを簡単に交換できます。

そうすれば、子が適切に初期化されたことを確認できます。

于 2013-10-09T13:38:54.667 に答える