Javascript 子组件中未定义回调函数

Javascript 子组件中未定义回调函数,javascript,reactjs,Javascript,Reactjs,在父组件中,我有一个更新状态的函数,当回调执行时,searchDocs() 该函数作为道具在子组件中传递 调用该函数时出现问题: -状态已更新 -但是searchDocs()未定义 无法找出它未定义的原因 父组件-传递的函数: // Method which is Not triggered and should be searchDocs(currentPage = 1) { const { selectedFilters, searchTags } = this.state;

在父组件中,我有一个更新状态的函数,当回调执行时,
searchDocs()

该函数作为道具在子组件中传递

调用该函数时出现问题: -状态已更新 -但是
searchDocs()
未定义

无法找出它未定义的原因

父组件-传递的函数:

  // Method which is Not triggered and should be
 searchDocs(currentPage = 1) {
    const { selectedFilters, searchTags } = this.state;
    if (!searchTags.length && !Object.keys(selectedFilters).length) {
      return null;
    }
    const data = {
      query: (searchTags || [])
        .filter((item) => !item.id)
        .map((item) => item.name)
        .join(' '),
      concepts: (searchTags || []).filter((item) => !!item.id),
      selectedFilters,
      offset: (currentPage - 1) * PAGE_SIZE,
      pageSize: PAGE_SIZE
    };
    this.setState({ isLoading: true, currentPage });
    return searchNews(data)
      .then((res) => {
        this.setState({ docs: res.hits.hits, total: res.hits.total, isLoading: false });
        return res;
      })
      .then((res) =>
        setLocalSearchResults({
          selectedFilters: this.state.selectedFilters,
          docs: res.hits.hits,
          total: res.hits.total,
          currentPage,
          searchTags
        })
      )
      .catch((err) => {
        this.setState({ isLoading: false });
        errorHandler(err, 'Error searching documents.');
      });
  }


 resetFiltersState = () => {
    this.setState(
      {
        selectedFilters: {},
        collectionSaved: false
      },
      () => this.searchDocs()
    );
  };

render() {
  return (
     <CreateCollection resetFiltersState={this.resetFiltersState} />
  )
}

//未触发且应
searchDocs(currentPage=1){
const{selectedFilters,searchTags}=this.state;
if(!searchTags.length&&!Object.keys(selectedFilters.length){
返回null;
}
常数数据={
查询:(searchTags | |[])
.filter((项目)=>!item.id)
.map((项)=>item.name)
.加入(“”),
概念:(searchTags | |[]).filter((item)=>!!item.id),
选定的过滤器,
偏移量:(当前页-1)*页大小,
页面大小:页面大小
};
this.setState({isLoading:true,currentPage});
返回搜索新闻(数据)
。然后((res)=>{
this.setState({docs:res.hits.hits,total:res.hits.total,isload:false});
返回res;
})
。然后((res)=>
setLocalSearchResults({
selectedFilters:this.state.selectedFilters,
文档:res.hits.hits,
总计:res.hits.total,
当前页,
搜索标签
})
)
.catch((错误)=>{
this.setState({isLoading:false});
errorHandler(err,“搜索文档时出错”);
});
}
resetFiltersState=()=>{
这是我的国家(
{
selectedFilters:{},
已保存的收藏:错误
},
()=>this.searchDocs()
);
};
render(){
返回(
)
}
儿童共同成分:

 clearFilters = () => {
    this.closeSaveCollectionPopup();

    this.props.resetFiltersState();  // ==> This is a function which is passed from parent
    this.resetCreateCollectionState();
  };


// Here is where the event is triggered:

 <button className="button" onClick={this.clearFilters}>
   <span className="spacing-outher-right-1">{t('clearFilters')}</span>
     <i className="material-icons md-29">highlight_off</i>
 </button>
clearFilters=()=>{
this.closeSaveCollectionPopup();
this.props.resetFiltersState();//=>这是一个从父级传递的函数
此参数为.resetCreateCollectionState();
};
//以下是触发事件的位置:
{t('clearFilters')}
突出显示

您可以发布父组件的代码吗?您的代码应该可以工作,错误可能来自您的类中缺少的部分,您可以共享更多代码吗?
searchDocs()
的代码在哪里?
searchDocs()
在父组件中。实际上,我没有得到错误
未定义
。在调试器中,我看到该函数未定义,这就是为什么未调用的原因。请将searchDocs()更改为arrow函数,然后重试