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

发布于 2022-09-12 23:17:08 字数 1036 浏览 26 评论 0

问题描述

这个控制台都打印出信息了,然后返回的却是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;
                        }
                    }
                }
            }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清泪尽 2022-09-19 23:17:08

你的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;
                        }
                    }
                }
            }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文