我有一个react组件,我想要应用一个递归函数。我在我的递归函数中有一个函数调用,它将在进程完成后调用main函数。内部函数调用没有被调用,它表明该函数是无法访问的。我不确定如何确保可以从内部函数调用main函数。
如果您查看代码,在HelpFolder调用下,我想再次调用traverseFolder函数。这就是unreachable code detected
所展示的。
我尝试使用this.traverse文件夹,但不起作用。
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个文件,但它只是显示第一个文件夹。
发布于 2019-05-24 02:47:48
代码是无法访问的,因为您将其放在return
之后。一旦你使用return
,之后的任何东西都不会被执行,函数就会退出。因此,将函数调用放在它之前。
发布于 2019-05-24 03:28:34
应在返回语句内调用traverseFolder
函数,否则代码将不会执行
你应该像这样修复与文件夹部分相关的代码:
if(current[i].type === 'folder'){
return(
<>
<HelpFolder
type={current[i].type}
name={current[i].name}
path={current[i].path}
/>
{traverseFolder(current[i])}
</>
);
}
https://stackoverflow.com/questions/56281234
复制相似问题