从服务器上的猫鼬获取数据,但在 React 中获取空数组
Getting data from mongoose on server but an empty array in React
当我尝试使用 React return 来自 moongoose 的数据时,它只使用 useEffect
显示一个空数组,当我在页面内更改某些内容时,它 return 显示数据,同样,当我尝试映射数据时,它什么也没显示:
服务器端:
const mongoose = require('mongoose');
const Partner = new mongoose.Schema({
name: { type: String },
website: { type: String },
},
{ collection: 'partner-data' }
);
const partnerModal = mongoose.model('partner-data', Partner);
module.exports = partnerModal;
app.get('/getpar', (req, res) => {
Partner.find().then(result => res.send(result)).catch(err => console.log(err))
})
客户端:
const [par, setPar] = useState([]);
useEffect(() => {
async function getPartners() {
const req = await axios.get("http://localhost:1200/getpar");
setPar(req.data);
console.log(par);
}
getPartners();
},[])
{par.map(p => {p.name})}
服务器端工作正常,当我调用它时它显示数据但是当我在客户端控制台登录时它显示一个空数组并且不显示任何数据。
在 React 更新状态之前,您正在“consol logging”,以确保您正在获取数据,在 getPartners
:
中执行此操作
console.log(req.data);
在你的 useEffect
之外的某个地方,做:
console.log(par);
当我尝试使用 React return 来自 moongoose 的数据时,它只使用 useEffect
显示一个空数组,当我在页面内更改某些内容时,它 return 显示数据,同样,当我尝试映射数据时,它什么也没显示:
服务器端:
const mongoose = require('mongoose');
const Partner = new mongoose.Schema({
name: { type: String },
website: { type: String },
},
{ collection: 'partner-data' }
);
const partnerModal = mongoose.model('partner-data', Partner);
module.exports = partnerModal;
app.get('/getpar', (req, res) => {
Partner.find().then(result => res.send(result)).catch(err => console.log(err))
})
客户端:
const [par, setPar] = useState([]);
useEffect(() => {
async function getPartners() {
const req = await axios.get("http://localhost:1200/getpar");
setPar(req.data);
console.log(par);
}
getPartners();
},[])
{par.map(p => {p.name})}
服务器端工作正常,当我调用它时它显示数据但是当我在客户端控制台登录时它显示一个空数组并且不显示任何数据。
在 React 更新状态之前,您正在“consol logging”,以确保您正在获取数据,在 getPartners
:
console.log(req.data);
在你的 useEffect
之外的某个地方,做:
console.log(par);