使用文本字段设置 rxSwift?
Setting up rxSwift with a text field?
我是第一次使用 rxSwift,我的视图中有一个文本字段,我想将其值设置为对应的 viewModels 属性。我有以下代码,但它会抛出错误。我在这里错过了什么?
self.loginView.emailTextField.rx.text
.bindTo(self.loginViewModel.userEmail)
.addDisposableTo(self.disposeBag)
问题:
Cannot invoke 'bindTo' with an argument list of type '(String)'
我认为您在 ViewModel 中为 userEmail 使用了 String 类型。您不能将 observable 绑定到普通字符串。您的视图模型类型应如下所示:
var userEmail = Variable<String>("")
现在从 ViewController 您可以像这样绑定:
emailTextField.rx.text.orEmpty
.bind(to: viewModel.userEmail)
.addDisposableTo(disposeBag)
此外,如果你想使用可选字符串,你也可以这样做:
var userEmail = Variable<String?>(nil)
emailTextField.rx.text.bind(to: viewModel.userEmail)
我是第一次使用 rxSwift,我的视图中有一个文本字段,我想将其值设置为对应的 viewModels 属性。我有以下代码,但它会抛出错误。我在这里错过了什么?
self.loginView.emailTextField.rx.text
.bindTo(self.loginViewModel.userEmail)
.addDisposableTo(self.disposeBag)
问题:
Cannot invoke 'bindTo' with an argument list of type '(String)'
我认为您在 ViewModel 中为 userEmail 使用了 String 类型。您不能将 observable 绑定到普通字符串。您的视图模型类型应如下所示:
var userEmail = Variable<String>("")
现在从 ViewController 您可以像这样绑定:
emailTextField.rx.text.orEmpty
.bind(to: viewModel.userEmail)
.addDisposableTo(disposeBag)
此外,如果你想使用可选字符串,你也可以这样做:
var userEmail = Variable<String?>(nil)
emailTextField.rx.text.bind(to: viewModel.userEmail)