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

在使用的react版本如下:

img


已写的部分代码:

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)
    })
  }
 

首次进入本模块界面时打印出的结果是能获取到数据(弹出的轻提示显示获取到1946套房源):

img


点击某个按钮后的打印结果为(弹出的轻提示显示获取到105959套房源):

img


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

点击按钮后,需要触发函数调用去获取数据才行

你需要把value值存起来

const [value, setValue] = useState('')
useEffect(() => {
    async function fetchData() {
      const { label, value } = await getCurrentCity()
      setValue(value )
      setLabel(label)
      setValue(value)
searchHouseList()
    }
    fetchData()
  },[])
  // 用来获取房屋列表数据
  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)
    })
  }