backcraftjs组件如何操作子组件上的可观察项



我觉得这里缺少了一些明显的东西,但看看这段代码。。。

class ShowMessageButton extends Component {                
showTheInfo() {
// what goes here??? 
}

bdElements() {
return e.div(
{bdAdvise: {click: 'showTheInfo'}},
'Click Me to see the Secret Message',
e(SecretMessage)
);
}
}
class SecretMessage extends Component.withWatchables('showMe') {
constructor(kwargs) {
super(kwargs);
this.showMe = false;
}
bdElements() {
return e.div({
bdReflectClass: ['showMe', s => s ? '' : 'hidden'],
}, 'You clicked! The secret message is "howdy"')
}
}

showTheInfo中执行什么操作以将SecretMessage的showMe可监视设置为true

啊!想明白了。需要设置bdAttach以获得对子组件的引用:

class ShowMessageButton extends Component {                
showTheInfo() {
this.secretMsg.showMe = true;
}

bdElements() {
return e.div(
{bdAdvise: {click: 'showTheInfo'}},
'Click Me to see the Secret Message',
e(SecretMessage, {bdAttach: 'secretMsg'})
);
}
}

最新更新