我使用RxBinding2来监听SearchView中的文本更改。当用户在EditText中输入smth时,我需要使用具有不同去抖动的单独逻辑。我试过这个:
RxSearchView.queryTextChanges(searchView)
.debounce(500, TimeUnit.MILLISECONDS) // use debounce
.observeOn(AndroidSchedulers.mainThread())
.subscribe(query -> mPresenter.searchRequest(query));
RxSearchView.queryTextChanges(searchView) // no debounce required here
.observeOn(AndroidSchedulers.mainThread())
.subscribe(query -> mPresenter.updateUI(query));
RxSearchView.queryTextChanges会覆盖侦听器,因此,当然只会调用第二个。
我可以将这两个不同的去抖动的 searchRequest 和 updateUI 组合成一个rx序列吗? 我应该在某种程度上使用过滤器运算符吗?
答案 0 :(得分:1)
您可以通过多种方式解决此问题,但我认为最便宜的方法是使用import React from 'react';
const Article = ({match, data}) => {
let article = data.find(a => a.slug == match.params.articleSlug);
let articleData;
if(article)
articleData = <div>
<h3> {article.title.rendered}</h3>
{ console.log(`${article.title.rendered}`) }
<p>{article.content.rendered}</p>
{ console.log(`${article.content.rendered}`) }
<hr />
</div>
else
articleData = <h2> Sorry. That article doesn't exist. </h2>;
return (
<div>
<div>
{articleData}
</div>
</div>
)
}
export default Article;
运算符。此运算符是.share()
的简写。所以你可以这样做。
.publish().refCount()
希望这有帮助。