比多次调用setState更好的方法来处理无线电组表单?

时间:2018-08-21 16:50:44

标签: javascript reactjs

首先,感谢您的耐心和专业知识。没有你,我会拖地板。从Linus Torvalds到DHH,再到您-很棒。

所以我有一个重复的问题(在这里回答Why calling setState method doesn't mutate the state immediately?

我有一个42个无线电组表单,每个选择都调用setState。上面的解决方案说调用是异步的,并导致组件重新加载。我不需要(认为我)需要这样做。您将如何在内存中存储会话,Cookie或在用户提交表单之前不会导致重新绘制的内容?抱歉,如果这是另一个重复。我很慢。

再次感谢。

1 个答案:

答案 0 :(得分:2)

不“重画”页面不是反应的工作方式。当用户与我正在处理的页面进行交互时,我会不断“重绘”屏幕。

您要使用setState,因为如果用户一直单击鼠标,那么您希望能够继续更新并跟踪他们所做的事情,因此每次更新都不会被覆盖。异步更新的好处在于,您可以在用户触发操作的那一刻获得状态的副本,这样可以确保在用户一次更新一些内容时,您不会陷入时髦的状态。

这可能是“异步”更新,但感觉像是立即发生,并触发了组件使用新信息进行自身更新(也称为重新绘制)