Ken428965 2023-03-15 21:05 采纳率: 53.4%
浏览 7
已结题

react,patch下架指定项,浏览器没有报错,且浏览器network里显示更新成功,状态码是200,但指定项在刷新页面或重新进入页面后又再次出现,没有实现真正的下架效果?

问题情况如下:
在使用的react版本如下:

img

客户端代码如下:

import React, { useEffect, useState } from 'react'

function Rent() {
  const [list, setList] = useState([])
  
  const getHouseList = () => {
    API.get('/user/houses').then(res=>{
      const { status, body } = res.data
      if (status === 200) {
        setList(body)
      }
    })
  }
  
  const deleteRent = (e, index, item) => {
    e.stopPropagation()
    let rent = [...list]
    rent.splice(index, 1)
    API.patch(`/user/houses/${item.houseCode}`,{shelf: false}).then(() => {
      setList(rent)
console.log(setList(rent))
    })
  }

  useEffect(() => {
    getHouseList()
  },[])
// ...
      return (
          <span className={styles.delete} onClick={(e)=>deleteRent(e, index, item)}><CloseCircleOutline /></span>
      )
// ...
}
export default Rent

后端代码如下:

    //上下架房屋
    shelving: async x => {
        x.body = {
            status: 400,
            description: "请求成功",
            body: null
        };
        let {userCode} = x.headers;
        let {id} = x.params;
        let {shelf} = x.request.body;
        let y = await dataBash.House.houseUpdate({where: {houseCode: id, userCode: userCode.ID} }, {
            lock: shelf})
        if (!y) {
            x.body.description = "下架失败";
        } else {
            x.body.status = 200;
            x.body.description = "更新房屋成功"
        }
    }
};
 

客户端代码的打印结果是undifined
目前效果如下,点击项目右下角删除图标,被点击项消失,浏览器没有报错,且浏览器network里显示更新成功,状态码是200:

img

然而,在刷新页面或重新进入页面后,被删除的项目又重新出现,即项目没有被真正下架

尝试过的努力:
1、把客户端setList(rent)注释掉后,点击删除图标没有任何反应;
2、把客户端getHouseList()加到setList(rent)下面,目的是希望在删除项目后重新获取最新的数据,然而效果是点击删除图标,项目消失了一秒钟后又自动出现了;
3、看到后端代码里除了有houseCode外还有userCode,试过把客户端里的API.patch那一段改为API.patch(/user/houses/${item.houseCode,item.userCode},{shelf: false}),浏览器network里获取数据的结果是undifined

不知道是不是上面代码的问题,希望先从上面的代码找原因。请问代码有写得不对的地方吗?如何修改才能实现项目真正被下架?请在现有代码基础上展示举例说明,谢谢

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-03-15 22:55
    关注

    看下数据库有没有更新,下架属性要设置

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月16日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 编译python程序为pyd文件报错:{"source code string cannot contain null bytes"
  • ¥20 关于#r语言#的问题:广义加行模型拟合曲线后如何求拐点
  • ¥15 fluent设置了自动保存后,会有几个时间点不保存
  • ¥20 激光照射到四象线探测器,通过液晶屏显示X、Y值
  • ¥15 这怎么做,怎么在我的思路下改下我这写的不对
  • ¥50 数据库开发问题求解答
  • ¥15 安装anaconda时报错
  • ¥15 小程序有个导出到插件方式,我是在分包下引入的插件,这个export的路径对吗,我看官方文档上写的是相对路径
  • ¥20 希望有人能帮我完成这个设计( *ˊᵕˋ)
  • ¥100 将Intptr传入SetHdevmode()将Intptr传入后转换为DEVMODE的值与外部代码不一致