首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用RXJs streams切换和隐藏

使用RXJs streams切换和隐藏
EN

Stack Overflow用户
提问于 2017-04-18 01:44:08
回答 1查看 376关注 0票数 2

我正在尝试使用RX Js创建一个侧边栏菜单作为练习。这就是我到目前为止得到的:

代码语言:javascript
运行
复制
var hideStream = Rx.Observable
.fromEvent(hideButton, 'click')
.map(() => false);

var toggleStream = Rx.Observable
.fromEvent(toggleButton, 'click')
.map(() => true);

var resultStream = Rx.Observable.merge(
toggleStream, hideStream)
.startWith(false)
.scan(function(value, newValue) {
  if (newValue) {
    return !value;
  } else {
    return false;
  }
});

toggleStream observable监听汉堡并允许用户切换菜单的可见性。第二个可观察的hideStream必须能够隐藏菜单,而不管当前状态是什么。

这是按预期工作的,但我想知道是否有更好的方法。我在scan运算符中所做的事情对我来说有点奇怪……

此处的工作示例:https://jsbin.com/hozozolune

EN

回答 1

Stack Overflow用户

发布于 2017-04-19 02:53:48

对我来说,这看起来很好,我们可以在正确设置toggleStream后合并hideStream和toggleStream时进一步简化事情:

代码语言:javascript
运行
复制
var hideStream = Rx.Observable
.fromEvent(hide, 'click')
.mapTo(false);

var toggleStream = Rx.Observable
.fromEvent(toggle, 'click')
.mapTo(true)
.startWith(false)
.scan(value => !value);

var resultStream = Rx.Observable.merge(toggleStream, hideStream);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43456555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档