问题标签 [koin-scope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
138 浏览

android - 如何获取当前的 KoinApplication 实例?

我正在使用 loadKoinModules 在带有 Koin 和 Jetpack 启动库的多模块项目中加载模块。

我正在尝试这种方式,但它是一个内部功能

我已经看到 KoinApplication 的 createEagerInstances 方法是公开的,但是我找不到获取当前 KoinApplication 实例的方法!

谢谢。

0 投票
2 回答
816 浏览

android - 如何使用sharedview model koin android注入具有范围的视图模型

需要一点点澄清一件事,现在正在处理一个我有两个视图模型并且一个依赖于另一个的流程,为了处理我尝试在我的基本活动中注入两个视图模型的问题,我遇到了这种方法. 每次我尝试访问这些视图模型时,Base Activity 都会返回新实例,有什么方法可以管理该视图模型的范围,以便我可以轻松访问其属性而无需添加额外的 Api 调用。

模块类

更新刀柄

上述库有视图模型,可以直接懒惰地注入视图模型。

0 投票
1 回答
205 浏览

android - Android Studio 中的 Koin Libraray 问题

添加此行显示错误

0 投票
0 回答
48 浏览

android - 有没有办法将 Koin 范围复制或克隆为新范围实例?

使用Koin库我试图实现这种行为:

简而言之,clone()应该将所有实例从一个范围复制到另一个范围。所以在这种情况下,我可以在scopeB不修改原始scopeA.

这可能吗?

0 投票
1 回答
474 浏览

android - 使用 koin 3 进行范围注入

我正在尝试从 2.1.6 -> 3.0.2 升级我的 koin 使用,并且在使用范围注入时遇到问题。

我有 MVP,其中 Activity/Fragment 是视图,我想在演示者中注入视图。

所以我有

在 2.1.6 中,我曾经这样做过,一切都很好:

然后在 MainActivity 我现在有:

和主持人:

但它无法获取源对象,我得到错误:

(即,当它尝试创建演示者时,它找不到范围内的 MainActivity)

这是现有代码(使用 2.1.6) https://github.com/sentinelweb/cuer/blob/develop/app/src/main/java/uk/co/sentinelweb/cuer/app/ui/main/MainActivity .kt

我在这里有更多的重写工作吗?我正在努力在 koin 文档中找到一个范围注入的好例子,而且很多看起来都很旧。很多项目似乎没有使用范围。

因此,如果有人能告诉我这里出了什么问题,或者给我指出一个类似 id 的像样的例子,非常感谢!

0 投票
0 回答
66 浏览

koin - Koin FragmentFactory 无法处理活动重新创建

我正在使用最新的 Koin 版本3.1.2。我有一个基本Fragment的,它接受一个 String 参数到它的构造函数。

我的 Koin 设置如下:

活动:

分段:

Koin 模块:

为了模拟活动重新创建,我Don't keep activities在开发人员选项中打开了标志。

重新创建活动时总是会发生什么,我得到以下异常:

0 投票
0 回答
26 浏览

android - 将作用域类注入片段的视图模型

我有这个特殊的测试用例,我不知道如何用 Koin 解决。

我有一个FooClassMainActivity生命周期相关的,我还有其他片段也需要使用FooClass. 这些片段需要FooClass注入到视图模型中。(我不想声明FooClasssingle

我试过了

我怎样才能做到这一点?

0 投票
0 回答
74 浏览

kotlin - 如何在新版本的 Koin 中访问对象范围

我有两种接口类型,每种都有两个子类。我创建了一个 Koin 模块,其中 Interface1 的每个子类都有一个范围,并且在每个范围内,范围版本Interface2Interface2. 在 Koin 组件中,我试图使用 Interface1 类型的范围来获取 Interface2 的正确子类。

以前,在 Koin 的 2.1.6 版本中,Any类型上有一个名为scope. 这将从对象中获取范围,并且我能够使用以下行来完成此任务,假设“interface1”是一些实现Interface1

interface1.scope.get<Interface2>()

这在 Koin 的更高版本中被删除了,现在从 3.1.2 版开始,我不知道如何实现这一点了。

以下代码是我为尝试执行此操作而设置的,随后出现错误。

如果有人知道如何使它工作,将不胜感激。

0 投票
1 回答
171 浏览

android - 使用 koin 2.2.3 和 jetpack 导航在 2 个片段之间限定视图模型

Bonsoir à tous, je suis sur koin 2.2.3 et je cherche à scope un viewModel en fonction d'un graph。杰西西:

我的项目在 Koin 2.2.3 上,我搜索以图函数的视图模型的范围。在我的 ViewModelModule 中,我得到了这个:

在我的片段中,我得到了这个:

这是我的函数 sharedGraphViewModel:

谢谢你的帮助

0 投票
0 回答
27 浏览

android - 带有koin的Android多显示应用程序-根据运行的屏幕向同一活动注入不同的首选项

我正在为多显示器设备构建应用程序。该应用程序应可供 2 个不同的用户同时且独立地使用。虽然共享相同的数据,但它们都可以有不同的数据,SharedPreferences并且应用程序应该适应每个用户的需求。

这意味着该应用程序将MainActivity同时运行 2 个不同的实例,并且根据它们所在的显示,我需要加载 2 个不同的SharedPreferences文件。我Koin用于依赖注入,因为从内部Koin Module我无法检测到“需要此依赖项”的显示是什么,所以我有点卡住了。

我考虑过提供范围依赖,但我的Preferences类在不同的ViewModels(连接到连接到这些MainActivityes 之一的不同片段)、存储库类或Services 中大量使用,并且我不能scoped在非范围的依赖项中使用依赖项或我得到一个RuntimeException因为Koin找不到创建我的类所需的依赖项。

我像这样提供我的Preferences文件:

Koin 模块:

该解决方案目前不完整且无法正常工作。我怎样才能克服这个问题并区分何时Preferences需要由MainActivity主显示器或辅助显示器上的课程使用我的课程?