2017-08-29 47 views
1

我第一次使用rxSwift,我在我的視圖中有一個文本框,我想將它的值設置爲相應的viewModels屬性。我有以下代碼,但它會引發錯誤。我在這裏錯過了什麼?使用文本字段設置rxSwift?

self.loginView.emailTextField.rx.text 
      .bindTo(self.loginViewModel.userEmail) 
      .addDisposableTo(self.disposeBag) 

問題:

不能援引 'bindTo' 類型的參數列表 '(字符串)'

+0

是userEmail正常字符串?你不能將Observables綁定到普通的基本類型 –

+0

你可以顯示視圖模型嗎? –

回答

0

我想你已經用了USEREMAIL字符串類型,在您的視圖模型。你不能將observable綁定到普通的String。您的視圖模型類型應該是這樣的:

var userEmail = Variable<String>("") 

,現在從視圖控制器可以綁定像這樣:

emailTextField.rx.text.orEmpty 
    .bind(to: viewModel.userEmail) 
    .addDisposableTo(disposeBag) 

此外,如果你想使用可選的字符串,你也可以做這樣的:

var userEmail = Variable<String?>(nil) 
emailTextField.rx.text.bind(to: viewModel.userEmail)