无法分配给属性:“值”是一个只能获取的属性 RxSwift -

Posted

技术标签:

【中文标题】无法分配给属性:“值”是一个只能获取的属性 RxSwift -【英文标题】:Cannot assign to property: 'value' is a get-only property RxSwift - 【发布时间】:2020-05-08 17:36:11 【问题描述】:

我想在 RxSwift - RxCocoa 中为 BehaviorRelay 赋值。但我收到此错误消息:“无法分配给属性:‘值’是一个只能获取的属性”。

这是我的代码: 私有 var todos = BehaviorRelay(值:[]) todos.value = todosVM.data

【问题讨论】:

永远不要创建BehaviorRelayvar。应该是let 【参考方案1】:

你应该使用接受

todos.accept(todosVM.data)

【讨论】:

【参考方案2】:

跳转到BehaviorRelay中的定义

你可以看到这个:

/// Accepts `event` and emits it to subscribers    
public func accept(_ event: Element)

/// Current value of behavior subject
public var value: Element  get 

value 是一个获取值。

todos.accept(todosVM.data)一样使用accept(_ event: Element)

【讨论】:

以上是关于无法分配给属性:“值”是一个只能获取的属性 RxSwift -的主要内容,如果未能解决你的问题,请参考以下文章

无法分配给属性:“xxxx”是一个只能获取的属性

无法分配给属性“tabBarController”是一个只能获取的属性

无法分配给属性:“操作”是仅获取属性

一旦分配给会话类的属性,就无法检索会话值[关闭]

无法分配给“状态”,因为它是常量或只读属性

无法在c#中将项目值分配给属性列表[关闭]