更新插入符号在Flux存储中的位置



我有一个包裹表单输入的组件。为了协作编辑的目的,我不仅需要监视文本的变化,还需要监视插入符号的位置。部分插入符号的位置将由selectionchange事件决定,也可以通过键盘快捷键更改。

现在我正在考虑如何将其融入Flux架构。我的意思是,当这个位置改变时,我应该调度一个动作相应地更新store,对吧?然后重新渲染发生,组件包装输入读取插入符号的位置信息,并在DOM中更新它。

理论上这应该可以很好地工作,但是想象一下,每次用户键入一个字母时,我都要更新插入符号的位置。对于快速打字的人来说,这可能会导致问题,因为插入符号会跳转回它不应该跳转的地方。

我可以在用户停止输入一段时间后实现一些剥离和分派动作,但这很难是一个健壮的解决方案。

所以我想知道如何以成熟的方式做到这一点。我想到的唯一一件事是,如果它是由打字或键盘快捷键引起的,就标记出已调度的操作,并简单地忽略之前的操作。这是一个"正确"的方法吗?或者你会推荐其他的方法吗?

理论上这应该可以很好地工作,但是想象一下,每次用户键入一个字母时,我都要更新插入符号的位置。对于快速打字的人来说,这可能会导致问题,因为插入符号会跳转回它不应该跳转的地方。

不会有这样的问题。调度一个动作和在每次按键时更新React组件状态没有什么不同。因为分派是同步的,所以状态将始终是最新的,并且插入符号不会跳转。

最新更新