I'm fetching data from Api, and then updating my state, but state is just holding last element of array, I'm using spread operator.
const Index=()=>{
const [data, setData] = useState([]); //append new messages in this data
const [keys, setKeys] = useState([]); //users ids will be stored in this state
const fetchNewData = async allKeys => {
for(let i=0;i<allKeys.length;i++){
let newUserData=//fetching data from somewhere
setData([...data,newUserData]) //now this fucntion is not setting state properly
}
}
//this useEffect is dependent on **teacher** state
useEffect(() => {
let tempKeys = Context.teacher.map(item => item.id);
fetchNewData(tempKeys);
setKeys(tempKeys);
}, [Context.teacher])
//this useEffect is dependent on **data** state
useEffect(() => {
console.log('data has been set: ', data); //just single user is logged everytime
}, [data]);
return **jsx**
}
export default Index;