Javascript 在Redux中更新常量时的延迟

Javascript 在Redux中更新常量时的延迟,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在尝试在React应用程序中使用Redux更新常量。但是当我的回调,handleChange被触发时会有一个延迟。它在调用setFormValues之前记录值。react版本为^16.8.0,react redux版本为7.1.1 Login.jsx formValues是一个简单的变量,在第一行调用useState时设置。在该渲染迭代期间,它不会更改 调用handleChange时,console.log使用该迭代中的formValues。只有在下一次呈现组件后,setState才会返回一

我正在尝试在React应用程序中使用Redux更新常量。但是当我的回调,
handleChange
被触发时会有一个延迟。它在调用
setFormValues
之前记录值。react版本为
^16.8.0
,react redux版本为
7.1.1

Login.jsx
formValues
是一个简单的变量,在第一行调用
useState
时设置。在该渲染迭代期间,它不会更改


调用
handleChange
时,
console.log
使用该迭代中的
formValues
。只有在下一次呈现组件后,
setState
才会返回一个新值,并且
handleChange
将使用更新的值重新创建。

formValues
是一个简单的变量,在第一行调用
useState
时设置。在该渲染迭代期间,它不会更改


调用
handleChange
时,
console.log
使用该迭代中的
formValues
。只有在下一次呈现组件后,
setState
才会返回一个新值,并且
handleChange
才会使用更新后的值重新创建。

如果您使用的是React钩子(我认为是),您可以在每次更新时使用
useffect
记录/操作新值,如下所示:

import React, { useState, useEffect } from 'react';

...

const [formValues, setFormValues] = useState({ email: ' ', password: ' ' });

const handleChange = (e) => {
  const updatedValues = { password: '', email: e.target.value };
  setFormValues(updatedValues);
};

useEffect(() => {
  console.log(formValues);
});

如果您使用的是React钩子,我认为您是这样的,那么您可以使用
useffect
在每次更新时记录/操作新值,如下所示:

import React, { useState, useEffect } from 'react';

...

const [formValues, setFormValues] = useState({ email: ' ', password: ' ' });

const handleChange = (e) => {
  const updatedValues = { password: '', email: e.target.value };
  setFormValues(updatedValues);
};

useEffect(() => {
  console.log(formValues);
});

useState看起来像React钩子,与Redux完全无关这是因为
setFormValues
在React中设置状态,并且状态的设置是异步的,因此可以在状态设置完成之前进行日志记录state看起来像React钩子,与Redux完全无关这是因为
setFormValues
设置状态,并且状态设置在React中是异步的,因此可以在状态设置完成之前进行日志记录