Javascript 如何在react中的无状态组件中设置状态、多个对象值?

Javascript 如何在react中的无状态组件中设置状态、多个对象值?,javascript,json,reactjs,Javascript,Json,Reactjs,我使用的是无状态组件,从json文件中获取了值,当我使用map从json文件对象中获取数据时,它将只存储状态中的最后一个数据,而不是整个对象: import React, { useState, useEffect} from 'react' import usersInformation from '../assets/dataconfig/users.json' const Login = () => { const [userEmail, updateEmail] = useSt

我使用的是无状态组件,从json文件中获取了值,当我使用map从json文件对象中获取数据时,它将只存储状态中的最后一个数据,而不是整个对象:

import React, { useState, useEffect} from 'react'
import usersInformation from '../assets/dataconfig/users.json'

const Login = () => {

const [userEmail, updateEmail] = useState([]);
const [userPassword, updatePassword] = useState([]);

   useEffect(function () {
   const getUserdata = () => {
        usersInformation.authorizedwebusers.map(item => {
            console.log(item);
            updateEmail([...userEmail, item.emailAddress]); // here store only last json data - shiv@gmail.com
            updatePassword([...userPassword, item.emailpassword])
        })
    }
    getUserdata();

}, [])
}

My json另存为users.json:

{
 "authorizedwebusers": [
    {
        "name": "Anil",
        "emailAddress": "anil@gmail.com",
        "emailpassword": "123"
    },
    {
      "name": "Lalit",
      "emailAddress": "lalit.kumar@gmail.com",
      "emailpassword": "123"
    },
    {
        "name": "Shiv",
        "emailAddress": "shiv@gmail.com",
        "emailpassword": "123"
    }
  ]
}

你做错了。setXyz不是同步操作,它需要一些时间。您需要以不同的方式实现这一点。首先计算,然后设置值

useEffectfunction{ const getUserdata==>{ 常量电子邮件=[]; 常量密码=[]; usersInformation.authorizedwebusers.mapitem=>{ console.logitem; emails.pushitem.emailAddress; passwords.pushitem.emailpassword; }; 更新邮件[…用户电子邮件,…电子邮件]; updatePassword[…用户密码,…密码] } 获取用户数据;
},[]您的问题是如何在无状态组件中设置状态?或者这就是为什么只有最后一个数据保存在状态中?