【发布时间】:2021-09-19 15:00:10
【问题描述】:
我正在尝试将从服务器获取的对象列表传递给状态列表。当我打印出来时,我看到列表中没有值,或者有时它说它是未定义的。为什么会发生这种情况,我该如何解决?谢谢。
const favContext = useContext(FavoritesContext);
const participantContext = useContext(ParticipantsContext);
let [allPossibleParticipants, setAllPossibleParticipants] = useState([]);
let [allParticipants, setAllParticipants] = useState([]);
let [showParticipants, setShowParticipants] = useState(false);
useEffect(() => {
try {
fetch('http://localhost:3000/users')
.then(response => {
return response.json();
}).then(data => {
const users = [];
for (const key in data) {
const user = {
id: key,
...data[key]
};
users.push(user);
};
console.log(users);
setAllPossibleParticipants(users);
console.log(allPossibleParticipants);
})
} catch (err) { console.log(err) };
}, [participantContext, props]);```
**Print Output:**
Original object
{
"id": "1",
"_id": "60e5f9464711a474ccd0b592",
"name": "Juan",
"email": "juan.ucf.edu",
"username": "juanucf1",
"__v": 0
}
Receiving List
[]
【问题讨论】:
-
您是否尝试过
console.log(data),以检查它是否真的与您期望收到的相符? -
setAllPossibleParticipants(state => [...state, ...users]);
标签: javascript arrays reactjs object web