更新Flux商店内的插入位置

时间:2015-07-26 12:04:17

标签: reactjs flux caret

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

现在我正在考虑如何将其融入Flux架构中。我的意思是,当这个职位发生变化时,我应该派出一个相应更新商店的行动,对吧?然后重新渲染发生,组件包装输入读取有关插入位置的信息并在DOM中更新它。

理论上这应该很好用,但想象一下每次用户输入一个字母时我都会更新插入位置。对于快速打字机,它可能会导致问题,因为插入符号将跳回到它不应该的地方。

我可以在用户停止输入一段时间之后才实施一些减少和发送动作,但这不是一个强有力的解决方案。

所以我想知道如何以成熟的方式完成这项工作。我想到的只是标记调度操作,如果它是由键入或键盘快捷键引起的,只是忽略以前的操作。这是"正确"接近或者你会推荐别的吗?

1 个答案:

答案 0 :(得分:2)

  

理论上这应该很好用,但想象一下每次用户输入一个字母时我都会更新插入位置。对于快速打字机,它可能会导致问题,因为插入符号会跳回不应该的位置。

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