如何干净利落地将信息传递给封装组件?

我是一个笨拙的mobx初学者,只是发现自己在做一些奇怪的事情,比如在props中传递一个"holder“结构给内部组件,这个内部组件修改它的内容,这样就把更改传播到外部组件。这听起来很脏,但是传递一堆回调感觉更脏。

传递的信息包含第一个可见元素的索引之类的内容,这是除了内部组件之外没有人可以计算的东西。其他组件甚至不应该知道有一个滚动条或类似的东西。

我希望这段代码能说明我的问题。你能给我指个干净的解决方案吗?

@observer class Inner {
    _someChange = (event) => {
        this.props.holder.something = event.something
    }

    _anotherChange = (whatever) => {
        this.props.holder.anotherthing = whatever.anotherthing
    }

    render() {
        return <div>
            <Something onClick={this._someChange} onWhatever={this._anotherChange}/>
    </div>
}

@observer class Outer {
    @observable _holder = {
         something: 0,
         anotherthing: '',
    }

    render() {
        return <div>
            <Inner holder={this._holder}/>
            <AComponentNeedingTheHolderContent something={this._holder.something}/>
        </div>
    }
}

转载请注明出处:http://www.xiangbinbaiyi.com/article/20230529/2526528.html