Ken428965 2022-11-14 12:56 采纳率: 53.9%
浏览 59
已结题

react,获取数据问题:第一次获取不到数据,第二次才能获取到数据?

在使用的react版本如下:

img


已写的部分代码:

useEffect(() => {
    async function fetchData() {
      const { label, value } = await getCurrentCity()
      setLabel(label)
      setValue(value)
    }
    fetchData()
      
    searchHouseList()
  },[])
  
  // 用来获取房屋列表数据
  const searchHouseList = () => {

    API.get('/houses', {
      params: {
        cityId: value,
        ...filters,
        start: 1,
        end: 20
      }
    }).then(res=>{
      console.log("value值:", value)
      console.log("filters值:", filters)
    const { list, count } = res.data.body

    setList(list)
    setCount(count)
    // 数据加载完成的状态
    setIsLoading(false)
    })
  }

首次进入本模块界面时打印出的结果是空值(获取到105959套房源):

img


点击“方式“,不选择任何一项,点击“确定”后的打印结果为(获取到1946套房源):

img


故障可总结为:第一次获取不到数据,第二次才能获取到数据
请问代码出了什么问题?如何修改?烦请展示代码进行举例说明,感谢~

  • 写回答

1条回答 默认 最新

  • 明先生啊。 2022-11-14 14:29
    关注

    useEffect(() => {
    async function fetchData() {
    const { label, value } = await getCurrentCity()
    setLabel(label)
    setValue(value)
    searchHouseList(value)
    }
    fetchData()

    },[])

    // 用来获取房屋列表数据
    const searchHouseList = (value) => {

    API.get('/houses', {
      params: {
        cityId: value,
        ...filters,
        start: 1,
        end: 20
      }
    }).then(res=>{
      console.log("value值:", value)
      console.log("filters值:", filters)
    const { list, count } = res.data.body
    
    setList(list)
    setCount(count)
    // 数据加载完成的状态
    setIsLoading(false)
    })
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月15日
  • 已采纳回答 11月15日
  • 修改了问题 11月15日
  • 创建了问题 11月14日

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能