菜鸟教程小白 发表于 2022-12-11 18:35:06

ios - 使用文本字段设置 rxSwift?


                                            <p><p>我第一次使用 rxSwift,我的 View 中有一个文本字段,我想将其值设置为对应的 viewModels 属性。我有以下代码,但它会引发错误。我在这里错过了什么?</p>

<pre><code>self.loginView.emailTextField.rx.text
            .bindTo(self.loginViewModel.userEmail)
            .addDisposableTo(self.disposeBag)
</code></pre>

<p>问题:</p>

<blockquote>
<p>Cannot invoke &#39;bindTo&#39; with an argument list of type &#39;(String)&#39;</p>
</blockquote></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为您在 ViewModel 中为 userEmail 使用了 String 类型。您不能将 observable 绑定(bind)到普通字符串。您的 View 模型类型应如下所示:</p>

<pre><code>var userEmail = Variable&lt;String&gt;(&#34;&#34;)
</code></pre>

<p>现在从 ViewController 你可以像这样绑定(bind):</p>

<pre><code>emailTextField.rx.text.orEmpty
    .bind(to: viewModel.userEmail)
    .addDisposableTo(disposeBag)
</code></pre>

<p>如果你想使用可选字符串,你也可以这样做:</p>

<pre><code>var userEmail = Variable&lt;String?&gt;(nil)
emailTextField.rx.text.bind(to: viewModel.userEmail)
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用文本字段设置 rxSwift?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45937008/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45937008/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用文本字段设置 rxSwift?