微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mobx:确定数据被添加删除或修改到存储中

如何解决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 举报,一经查实,本站将立刻删除。