gpt4 book ai didi

javascript - 连接商店时 Mobx.inject 和 Mobx.observer 之间的主要区别是什么?

转载 作者:行者123 更新时间:2023-11-29 16:07:07 33 4
gpt4 key购买 nike

我开始将我的商店连接到 mobx。我想知道使用 observer(['store'],...) 或使用 inject('store')(observer(...))

我认为注入(inject)不是 react 性的主要区别。那么 inject over observer 的意图到底是什么?

最佳答案

observer(['store'], Component)inject('store')(observer(Component)) 没有区别。

observer 装饰器检查第一个参数是否为数组。如果它是一个数组,那么它会调用 inject internally .

function observer(arg1, arg2) {
...
if (Array.isArray(arg1)) {
...
return inject.apply(null, arg1)(observer(arg2));
}
...

但是,您可以在injectobserver 之间添加更多装饰器。在那种情况下,会有区别:中间装饰器可以访问注入(inject)的 Prop 。显然,如果您不使用 inject,外部装饰器将无法访问注入(inject)的 props。

inject 是一种简单的注入(inject) props 的方式,因为 MobX 已经有了在上下文中传递内容的机制。如果您想将 props 注入(inject)组件而不将其变成响应式(Reactive)组件,则必须使用另一个库(例如 react-tunnel)。

关于javascript - 连接商店时 Mobx.inject 和 Mobx.observer 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38591707/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com