javascript - 手动触发 Bacon.js 流更新?

标签 javascript reactjs frp bacon.js

我对 FRP 和 bacon.js 还很陌生,所以我可能会做一些非常愚蠢的事情。

测试应用程序有一个文本区域和一个提交按钮;提交按钮将值添加到列表中,每次发生更改时我都会使用 React 显示该列表。这是代码的要点:https://gist.github.com/svileng/1f3702df855b50ed2f5e

我试图修复的错误是我可以多次单击提交按钮,并且文本区域中的最后一个值不断添加到列表中。问题(我猜)是在第 18 行中,我手动清除了 textarea 的值。因此,事件流 newCommentValueS 和属性 newComment 不会更新,并且最后一个值会保留。

我该如何解决这个问题或解决这个问题?谢谢!

最佳答案

解决此问题的一种方法是使用 textFieldValue来自培根.jquery。它创建一个模型,它是可写入的属性的扩展。您的代码将类似于:

var newCommentValueM = Bacon.$.textFieldValue("#new-comment", "")
var newComment = newCommentValueM.filter(v => v.length > 0)

var commentAdded = Bacon.when(
    [newComment, buttonClickS], (comment, click) => {
        console.log("Submit comment: " + comment)
        newCommentValueM.set("")
        return comment
    }
)

关于javascript - 手动触发 Bacon.js 流更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331054/

相关文章:

reactjs - Material UI List onClick 触发嵌套列表上的 click 事件

javascript - 尝试为 create-react-app 设置 WebStorm IDE JavaScript 调试器时出现 404 错误

javascript - meteor 路由没有响应

javascript - 如何在 Javascript 和 OOP 中创建方法

javascript - 为数据表中的行添加 id

angular - Object.observe 退出和 RxJS 和 Angular 2

haskell - mapA 用于可能阻塞的流处理器(异步电路)

javascript - AngularJS - 接受对象或方法的指令参数

reactjs - createBottomTabNavigator 具有针对不同选项卡的动态 tabStyle

javascript - 使用 Bacon.js 消除唯一值的抖动