来为大佬看看这个是怎么回事?

问题描述

这个控制台都打印出信息了,然后返回的却是undefined。这个是什么原因.....

相关代码

粘贴代码文本(请勿用截图)

 const toggleCollapsed = () => {
                state.collapsed = !state.collapsed;
                state.openKeys = state.collapsed ? [] : state.preOpenKeys;
            };

            const getTitle = (keys:string[],arr:menu[],title = '',index =  keys.length - 1)=>{

                for (let item of arr) {
                    if (item.key ===  keys[index]){
                        title =  title.length === 0 ? title + item.title : title + `/${item.title}`;
                        if (item.children && index > 0){
                            getTitle(keys,item.children,title,--index);
                        }else{
                            console.log('title',title);
                            return title;
                        }
                    }
                }
            }

阅读 1.2k
1 个回答

你的getTitle不是所有路径都有返回值,在递归调用哪一行也加上return,再明确知道返回类型的情况下可以指明返回类型,这样typescript就能帮你找错了

const getTitle = (keys:string[],arr:menu[],title = '',index =  keys.length - 1)=>{

                for (let item of arr) {
                    if (item.key ===  keys[index]){
                        title =  title.length === 0 ? title + item.title : title + `/${item.title}`;
                        if (item.children && index > 0){
                           return getTitle(keys,item.children,title,--index);
                        }else{
                            console.log('title',title);
                            return title;
                        }
                    }
                }
            }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题