0

根据这篇文章https://insert-koin.io/docs/1.0/getting-started/android-scope/我们可以为我们的对象创建范围。这是那里给出的一个例子。

scope("session") { MyScopePresenter(get())}

我的问题是我们是否允许在每个范围内放置多个定义?我觉得我们不是。任何地方都没有例子表明这一点。

    scope("session") {  
       Something() 
     AnotherThing()}

这行不通。我只能注入 AnotherThing() 而没有注入某些东西。

为什么 Koin 只允许每个范围有一个定义?

4

1 回答 1

1

当您将声明添加到module { ... }using或定义时single,它们会在内部创建所谓的对象。这个 bean 定义对象将提供声明对象的实例。每个对象将处理一个声明。这意味着你应该改变factoryscopeBeanDefinitionBeanDefinition

scope("session") {  
   Something() 
   AnotherThing()
}

进入

scope("session") { Something() }
scope("session") { AnotherThing() }

为了使它工作。

于 2019-02-12T13:34:58.613 回答