【问题标题】:Return value is always same in useEffectuseEffect 中的返回值始终相同
【发布时间】:2021-03-06 11:55:26
【问题描述】:

我已经用 postman 测试了我的后端 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

【问题讨论】:

    标签: node.js reactjs use-effect


    【解决方案1】:

    我认为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])

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 2018-09-22
      • 2018-09-03
      • 1970-01-01
      • 2018-03-25
      • 2014-09-01
      • 2013-08-18
      • 2012-10-06
      相关资源
      最近更新 更多