返回值在useEffect中始终相同



我已经用poster测试了我的后端API,它正常工作。但当我从react js发送请求时,它总是返回0。我期望的返回值应该是1,因为表中已经存在此行。我很确定我的后端代码是好的,后端代码只是从邮递员工作得很好。我的React js代码出了什么问题?提前谢谢。干杯

前端React js代码如下:

const [like, setLike] = useState(0)
useEffect(() => {
const userObject = {
from_user_id,
to_user_id
}
likeDisplayService.unlikeDisplay(userObject)
.then(res => {
console.log("This is like return value "+ res.value);
setLike(res.value)
})
.catch(e => {
console.log(("Error: couldn't get like info"))
})
}, [])

后端节点js代码如下:

const likesDisplayRouter = require('express').Router()
const db = require('../utils/db')
likesDisplayRouter.get('/', (req, resp) => {
db.query('SELECT * FROM likes WHERE from_user_id = $1 AND to_user_id = $2',
[req.body.from_user_id, req.body.to_user_id], (err, res) => {
if (res && res.rows[0])
resp.status(200).send({ value: 1 })
else if (res)
resp.status(200).send({ value: 0 })
else
resp.status(400).send({ value: "Query execution failed"});
}
)
})
module.exports = likesDisplayRouter

我认为from_user_idto_user_id的值无效,您可以执行以下操作:

const [like, setLike] = useState(0)
useEffect(() => {
//Check if has a valid value
if (!from_user_id || !to_user_id) return
const userObject = {
from_user_id,
to_user_id
}
likeDisplayService.unlikeDisplay(userObject)
.then(res => {
console.log("This is like return value "+ res.value);
setLike(res.value)
})
.catch(e => {
console.log(("Error: couldn't get like info"))
})
//On changes in this variables call it again
}, [from_user_id, to_user_id])

最新更新