【问题标题】:setState hooks in axios post request not workingaxios post请求中的setState挂钩不起作用
【发布时间】:2021-10-06 15:50:19
【问题描述】:
const Login=(props)=>{

const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [user, setUser] = useState({});


const login = (e)=>{
    e.preventDefault();
    axios.post('/login',{email, password})
    .then(response => {
        setUser(response.data)
        console.log(response.data, user, "user data");
    }).catch(err => {
        console.log(err);
    })
}

this is the empty user data i

这是我的登录请求代码,它获取数据并将其记录在控制台中,但它不想设置用户

【问题讨论】:

  • 您没有看到在控制台中打印的用户是我在您的 .then 调用中吗?

标签: reactjs axios react-hooks use-state


【解决方案1】:

您可以使用 useEffect 来检查组件重新渲染后的状态:

useEffect(() => {
  console.log(user);
}, [user])

【讨论】:

    【解决方案2】:

    因为setUser 是异步的。因此新状态仅在组件重新渲染时更新。您可以通过将console.log 移到login 函数之外进行检查

    console.log(user, "user data");
    return(...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-25
      • 2021-09-22
      • 2022-01-23
      • 2021-08-11
      • 2019-07-23
      • 2021-12-22
      • 2018-07-28
      相关资源
      最近更新 更多