react,将子组件里筛选出来的数据,传参到父组件里的某个函数里

在使用的react版本如下:

img


已写的部分代码:
父组件HouseList:

function HouseList() {
// ...
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=>{
   // ...
    })
  }

 // 接收 子组件Filter 中的筛选条件数据
  const onFilter = filters => {
    // 返回页面顶部
    window.scrollTo(0, 0)
    setFilters(filters)
    // 调用获取房屋数据的方法
    searchHouseList(value)
  }
}

子组件Filter:

function Filter(props) {
// ...
// 确定按钮(隐藏对话框)
  const onSave = (type, value) => {
// ...
// 调用父组件HouseList中的方法,来将筛选数据传递给父组件HouseList
    props.onFilter(filters)
// ...
}

请问如何将子组件Filter里筛选出来的数据,传递到父组件HouseList里的searchHouseList函数里?正确的代码是什么?恳请展示代码进行举例说明

value你已经用变量存起来了,所以不用通过方法传进去,直接取就可以了, 方法里传个filters就可以了


function HouseList() {
// ...
useEffect(() => {
    async function fetchData() {
      const { label, value } = await getCurrentCity()
      setLabel(label)
      setValue(value)
      searchHouseList()
    }
    fetchData()
  },[])
// ...
  // 用来获取房屋列表数据
  const searchHouseList = (filters={}) => {
    API.get('/houses', {
      params: {
        cityId: value,
        ...filters,
        start: 1,
        end: 20
      }
    }).then(res=>{
   // ...
    })
  }
 // 接收 子组件Filter 中的筛选条件数据
  const onFilter = filters => {
    // 返回页面顶部
    window.scrollTo(0, 0)
    setFilters(filters)
    // 调用获取房屋数据的方法
    searchHouseList(value)
  }
}

可以看一下,React父子组件传参,大体就是把父组件的函数当做属性传递给子组件,然后子组件手动调用