Javascript 试图在get-react中将参数发送到axios

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

我是这个网站的新成员,也是新的反应者。 我构建了一个在nodejs中非常有效的函数。很少有情况下,我希望根据发送给它的参数运行此函数,因此我尝试发送参数,但我认为我不能,我尝试打印它-并且我没有得到要发送的参数的打印

我在react中运行函数throw click at button:

 <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 });
          });
      }
    })
  })


};