首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在我的react组件中,递归函数调用是“遥不可及的”

在我的react组件中,递归函数调用是“遥不可及的”
EN

Stack Overflow用户
提问于 2019-05-24 02:43:20
回答 2查看 23关注 0票数 0

我有一个react组件,我想要应用一个递归函数。我在我的递归函数中有一个函数调用,它将在进程完成后调用main函数。内部函数调用没有被调用,它表明该函数是无法访问的。我不确定如何确保可以从内部函数调用main函数。

如果您查看代码,在HelpFolder调用下,我想再次调用traverseFolder函数。这就是unreachable code detected所展示的。

我尝试使用this.traverse文件夹,但不起作用。

代码语言:javascript
复制
const traverseFolder = (current:any) => {
        console.log(current.length)
        if(current.length > 0){
            for(var i = 0; i < current.length; i++){
                console.log(current[i].type)
                if(current[i].type === 'folder'){
                    console.log(current[i].name)
                    return(
                        <HelpFolder
                            type={current[i].type}
                            name={current[i].name}
                            path={current[i].path}
                        />
                    )
                    traverseFolder(current[i])
                } else {
                    return(
                        <HelpFile
                            type={current[i].type}
                            name={current[i].name}
                            path={current[i].path}
                        />
                    )
                }
            }
        } else {
            console.log('no folder')
            return(
                <div>
                    {} 
                </div>
            ) 
        }
    }

我期望的是它显示2个文件夹和2个文件,但它只是显示第一个文件夹。

EN

回答 2

Stack Overflow用户

发布于 2019-05-24 02:47:48

代码是无法访问的,因为您将其放在return之后。一旦你使用return,之后的任何东西都不会被执行,函数就会退出。因此,将函数调用放在它之前。

票数 1
EN

Stack Overflow用户

发布于 2019-05-24 03:28:34

应在返回语句内调用traverseFolder函数,否则代码将不会执行

你应该像这样修复与文件夹部分相关的代码:

代码语言:javascript
复制
if(current[i].type === 'folder'){
  return(
    <>
      <HelpFolder
        type={current[i].type}
        name={current[i].name}
        path={current[i].path}
      />
      {traverseFolder(current[i])}
    </>
  );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56281234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档