我对FRP和bacon.js都很陌生,所以我可能会做一些非常愚蠢的事情。
测试应用有一个textarea和一个提交按钮;提交按钮将值添加到列表中,每次有更改时我都会使用React显示列表。以下是代码:https://gist.github.com/svileng/1f3702df855b50ed2f5e
的要点我试图修复的错误是我可以多次单击提交按钮,并且textarea中的最后一个值会不断添加到列表中。问题(我猜)是在第18行,我手动清除textarea的值。因此,事件流newCommentValueS
和属性newComment
不会更新,最后一个值会挂起。
我该如何解决这个问题?谢谢!
答案 0 :(得分:2)
解决此问题的一种方法是使用bacon.jquery中的textFieldValue。它创建了一个Model,它是可以写入的Property的扩展。您的代码将类似于:
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
}
)