如何在 ReactJS + ExpressJS 中将按钮的文本值发送到服务器?

How can I send text value of a button to the server in ReactJS + ExpressJS?

提问人:Dosya 提问时间:10/28/2022 更新时间:12/15/2022 访问量:69

问:

我无法将按钮文本值发送回服务器。

客户端按钮的代码:

{question.options?.map((option, index) =>
    <button key={index} className={styles.answer} onClick={() => guessHandling()}>{option}</button>)}

客户端onClick guessHandling函数的代码:

const guessHandling = async (userGuess) => {
      const res = await axios.post('/api/guess', { userGuess });
        setStatusMessage(res.data.returnStatus);
};

服务器端的代码:

app.post('/guess', (req, res) => {
  console.log(req.body.userGuess);   // <---- I RECIEVE "UNDEFINED" IN THE SERVER CONSOLE HERE. 
  res.send({
    returnStatus: "Guess Recieved"
  });
});

如上所示,当我尝试console.log userGuess 时,它是未定义的。

我还尝试包括 .value、.innerText、.innerHTML......仍然不起作用。

我尝试使用useState,但我不知道如何将按钮文本插入状态(这是这个问题的主要问题)。

(大概吧?我在onClick功能中缺少一些东西..我很想在这个问题上得到一些帮助。

JavaScript node.js ReactJS 服务器端客户端

评论

0赞 Elan Hamburger 10/28/2022
实际上,您并没有将该值传递到对 的调用中。尝试。guessHandlingonClick={() => guessHandling(option)}
0赞 Dosya 10/28/2022
问题已修复!简直不敢相信这就是问题所在......谢谢!

答:

0赞 Dosya 12/15/2022 #1

正如 Elan Hamburger 在评论中所写的那样, 解决方案很简单:

您实际上并没有将该值传递到对 guessHandling 的调用中。尝试: onClick={() => guessHandling(选项)}