Javascript 试图在get-react中将参数发送到axios
我是这个网站的新成员,也是新的反应者。 我构建了一个在nodejs中非常有效的函数。很少有情况下,我希望根据发送给它的参数运行此函数,因此我尝试发送参数,但我认为我不能,我尝试打印它-并且我没有得到要发送的参数的打印 我在react中运行函数throw click at button:Javascript 试图在get-react中将参数发送到axios,javascript,node.js,reactjs,express,axios,Javascript,Node.js,Reactjs,Express,Axios,我是这个网站的新成员,也是新的反应者。 我构建了一个在nodejs中非常有效的函数。很少有情况下,我希望根据发送给它的参数运行此函数,因此我尝试发送参数,但我认为我不能,我尝试打印它-并且我没有得到要发送的参数的打印 我在react中运行函数throw click at button: <Button onClick={() => { const result = [1,2,3,4,5,"test"]; props.makeMat
<Button onClick={() => {
const result = [1,2,3,4,5,"test"];
props.makeMatchVer2(result);
}}>
make match ver2
</Button>
我在nodeJS中构建的函数:
exports.addUserKmeansMatch = (req, res) => {
console.log("addUserKmeansMatch function start:");
console.log(req.data);
if(req.params)
{
console.log(req.params);
}
let userIndex = 0;
let engineers = [];
let engineersHandles = [];
let engineerDetailsNumeric = {};
db.collection("preferences").get().then(querySnapshot => {
querySnapshot.forEach(doc => {
const engineerDetails = doc.data();
if (engineerDetails.handle === req.user.handle) {
engineersHandles.unshift(engineerDetails.handle);
delete engineerDetails.handle;
engineerDetailsNumeric = convertObjectWithStrToNumber(engineerDetails);
engineers.unshift(engineerDetailsNumeric);
}
else {
engineersHandles.push(engineerDetails.handle);
delete engineerDetails.handle;
engineerDetailsNumeric = convertObjectWithStrToNumber(engineerDetails);
engineers.push(engineerDetailsNumeric);
}
});
kmeans.clusterize(engineers, { k: 4, maxIterations: 5, debug: true }, (err, result) => {
if (err) {
console.error(err);
return res.status(500).json({ error: err.code });
} else {
const cluster = result.clusters;
let foundedMatches = GetUserSerialGroup(userIndex, [...cluster], [...engineers]);
let foundedMatchesHandle = GetUserSerialGroupHandle(userIndex, [...cluster], [...engineersHandles]);
let totalTest = {
foundedMatches: foundedMatches,
foundedMatchesHandle: foundedMatchesHandle,
cluster: cluster,
engineersHandles: engineersHandles,
engineers: engineers
};
let userMatchHandle = reduceUserMatchHandle(foundedMatchesHandle);
userMatchHandle.handle = req.user.handle;
db.doc(`/match/${req.user.handle}`)
.set(userMatchHandle)
.then(() => {
return res.json({ message: "Details added successfully" });
})
.catch((err) => {
console.error(err);
return res.status(500).json({ error: err.code });
});
}
})
})
};
通过按钮,我向函数发送参数,但我看不到它们的打印,可能有些东西不起作用,但我不知道为什么,我对它不熟悉。您应该使用dispatch调用它:
dispatch(props.makeMatchVer2(result))
代码是正确的,我无意中发送了错误的对象,我有两个名称几乎相同的对象,一个是数组,另一个是对象。我无意中发送了对象而不是数组,它现在正在工作,谢谢。看起来makeMatchVer2
是一个返回函数(可能是a?)的函数,所以调用makeMatchVer2([1,2,3,4,5,“test”])
不会进行任何axios调用。感谢您的帮助,我使用了redux thunk。我想我没有在firebase中看到NodeJ的打印,我不明白为什么。谢谢你的帮助,我试图添加调度,但它给我带来了一个错误:“调度”没有定义没有未定义
exports.addUserKmeansMatch = (req, res) => {
console.log("addUserKmeansMatch function start:");
console.log(req.data);
if(req.params)
{
console.log(req.params);
}
let userIndex = 0;
let engineers = [];
let engineersHandles = [];
let engineerDetailsNumeric = {};
db.collection("preferences").get().then(querySnapshot => {
querySnapshot.forEach(doc => {
const engineerDetails = doc.data();
if (engineerDetails.handle === req.user.handle) {
engineersHandles.unshift(engineerDetails.handle);
delete engineerDetails.handle;
engineerDetailsNumeric = convertObjectWithStrToNumber(engineerDetails);
engineers.unshift(engineerDetailsNumeric);
}
else {
engineersHandles.push(engineerDetails.handle);
delete engineerDetails.handle;
engineerDetailsNumeric = convertObjectWithStrToNumber(engineerDetails);
engineers.push(engineerDetailsNumeric);
}
});
kmeans.clusterize(engineers, { k: 4, maxIterations: 5, debug: true }, (err, result) => {
if (err) {
console.error(err);
return res.status(500).json({ error: err.code });
} else {
const cluster = result.clusters;
let foundedMatches = GetUserSerialGroup(userIndex, [...cluster], [...engineers]);
let foundedMatchesHandle = GetUserSerialGroupHandle(userIndex, [...cluster], [...engineersHandles]);
let totalTest = {
foundedMatches: foundedMatches,
foundedMatchesHandle: foundedMatchesHandle,
cluster: cluster,
engineersHandles: engineersHandles,
engineers: engineers
};
let userMatchHandle = reduceUserMatchHandle(foundedMatchesHandle);
userMatchHandle.handle = req.user.handle;
db.doc(`/match/${req.user.handle}`)
.set(userMatchHandle)
.then(() => {
return res.json({ message: "Details added successfully" });
})
.catch((err) => {
console.error(err);
return res.status(500).json({ error: err.code });
});
}
})
})
};