gpt4 book ai didi

javascript - 如何处理事件副作用?

转载 作者:行者123 更新时间:2023-12-03 07:50:42 27 4
gpt4 key购买 nike

我正在尝试实现一个拖放区,例如 this React Component 。但是,我对如何对事件应用写入效果有点困惑,例如

dragOver$: DOM
.select('#dropzone')
.events('ondragover')
.map(e => {
e.preventDefault()
e.dataTransfer.dropEffect = 'copy'
})

这行不通,因为没有水槽。 map 内的代码实际上应该在接收器内执行。

有什么建议吗?

最佳答案

您应该编写一个简单的驱动程序来处理这个问题。请参阅有关驱动程序的文档 here .

看起来你可以做这样的事情:

function main(sources) {
return {
dragOver: DOM.select('#dropzone').events('ondragover')
};
}

const drivers = {
DOM: makeDOMDriver('#app'),
dragOver: (e$ => e$.subscribe(e => {
e.preventDefault()
e.dataTransfer.dropEffect = 'copy'
}))
}

简而言之:驱动程序封装了所有副作用并从这些接口(interface)返回输入,并且 Rx 代码中的所有副作用都仅限于 subscribe 参数观察者。

关于javascript - 如何处理事件副作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35003637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com