首页 > 解决方案 > React Hook:仅当用户停止输入时才向服务器发送数据

问题描述

我想要构建的是一个编辑器,它可以在不同的客户端之间同步数据。为了不使服务器过载,我考虑了一个时间窗口,该时间窗口必须在没有动作的情况下通过才能将数据发送到服务器。

目前我的反应状态有一个价值编辑。如果编辑从 true 切换到 false,则会向服务器发送带有新更新的补丁请求。

useEffect(() => {
    if (store.bootstrapFinished && store.editing === false)
        saveLesson(store, dispatch, true)
}, [store.editing])

当用户开始输入(可能是标题更改或文本更改)时,编辑设置为 true。为了使文本与服务器同步,我想在用户不进行任何更改后将编辑设置为 false,但 useEffect 仅对特定值的更改做出反应,例如上面的代码示例或每个人。

但是,是否还有一个像 useEffect 女巫这样的反应功能,每次编辑被派出时都会被调用,而不仅仅是改变?我阅读了一些关于 useRef 的内容,但并没有真正理解如何使用它。

标签: reactjsreact-hooks

解决方案


您应该在更改该状态的同时运行 fetch 函数

setEditing(true)
fetchOperation()


推荐阅读