【发布时间】:2020-01-20 21:21:09
【问题描述】:
我想要构建的是一个编辑器,它可以在不同的客户端之间同步数据。为了不使服务器过载,我考虑了一个时间窗口,必须在不采取任何操作的情况下将其传递给服务器。
目前我的反应状态有一个值编辑。如果编辑从 true 切换到 false,则会向服务器发送一个补丁请求,包含新的更新。
useEffect(() => {
if (store.bootstrapFinished && store.editing === false)
saveLesson(store, dispatch, true)
}, [store.editing])
Editing 设置为 true,当用户开始输入时(可能是标题更改或文本更改)。为了使文本与服务器同步,我想在用户不进行任何更改后将编辑设置为 false,但 useEffect 仅对特定值的更改做出反应,例如上面的代码示例或每个人。
但是是否还有一个像 useEffect 女巫这样的反应功能,每次编辑被派出时都会被调用,而不仅仅是在变化时?我阅读了一些关于 useRef 的内容,但并没有真正理解如何使用它。
【问题讨论】:
-
如果您想将效果范围限定为仅在某些属性更改时运行,则需要传递一组依赖项作为第二个参数。
useEffect(() =>{}, [props]) -
好的,是的,我也想过一个计数器来触发,但是没有更简单的解决方案来延迟补丁
标签: reactjs react-hooks