如何解决mobx:确定数据被添加删除或修改到存储中
组件有存储空间:
class BaseStorage {
private m_owner: BasePageReports | undefined = undefined;
@observable private m_apply: boolean = false;
constructor(owner: BasePageReports) {
this.m_owner = owner;
reaction(
() => this.m_apply,(enabled: boolean) => {
if (enabled === true)
{
this.m_apply = false;
if (this.m_owner !== undefined)
this.m_owner["start"](this);
}
}
);
}
apply(): void {
this.m_apply = true;
}
}
组件的存储包含在主组件(页面)中
@observer class BasePageReports extends Component {
private m_stores: Array<BaseFilterStorage> = [];
start(store: BaseFilterStorage): void {
console.log(store);
}
}
将数据添加到子组件中的存储中:
例如:
handleMultiselect = (data: any) => {
this.props.store[this.state.field] = data;
}
组件(应用按钮)功能如下:
handleClick = (event: React.MouseEvent) => {
this.props.store.apply();
}
问题:
我希望应用按钮处于活动状态或非活动状态,取决于存储库中数据分析的结果(例如,数据不应为空):
render() {
return (
<div className = 'element-apply'>
<button disabled = {this.props.store.check()} onClick = {this.handleClick}>Apply</button>
</div>
);
}
但是如何实现check()
函数,以便每次存储中的数据发生变化时都会调用它
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。