如果在组件创建时无法提供对象,请不要将它添加到组件图中!这是要求混淆图形依赖性和不一致性。您正在考虑的更好的解决方案是@Subcomponent
方法,该方法允许您创建一个从父级继承依赖关系的新组件,但也会添加一个新组件。下面是一个例子:
@Component
interface RegularComponent {
@AppInstanceId String appInstanceId(); // unique per app install; not related to logging in
AuthenticatedComponent newAuthenticatedComponent();
}
@Subcomponent
interface AuthenticatedComponent {
Set<Friend> friends();
@AccountId String accountId();
}
在此,在子组件可以使用appInstanceId
提供帐户ID的@AccountId
(如果需要),因为与它的父组件的子组件股依赖性。
如果您需要为子组件提供状态(包括accountId,auth令牌等),请将其作为参数传递给@Module
,并将其存储在private final
字段中。您可以阅读关于如何提供子组件模块in the documentation的更多信息。
你是什么意思的重写? – cyroxis
@cyroxis我的意思是交换,问题已更新 – AndroidEnthusiast
我只用过'懒惰'一次。它让我在创业时陷入僵局。再也不。顺便说一句,我不知道我做错了什么。我个人会创建一个单独的'Holder'对象,就像在'GrinderHolder'中一样,并且在你有它的时候设置它(否则为'null') –
EpicPandaForce