[react]不能将类型“string | undefined”分配给类型“To”。 不能将类型“undefined”分配给类型“To”

场景, 封装组件的时候, 想通过外部传进去一个路由地址, 再用<Link to={}>跳转, 显示这个,

有四种方法解决

第一种 合并运算符 ??

?? 是 空值合并运算符 (Nullish Coalescing Operator),它是 JavaScript 和 TypeScript 中的一种逻辑运算符,通常用于处理 null 或 undefined 的情况。

javascript 复制代码
a ?? b

解释:

  • 如果 a 不是 null 或 undefined ,那么 a ?? b 会返回 a 的值。
  • 如果 a 是 null 或 undefined,那么 a ?? b 会返回 b 的值。
javascript 复制代码
             <div className="right">
                {/* 第一种 */}
                <Link to={props.moreTextHref ?? ''}>{props.moreText}</Link>           
            </div>

第二种

使用条件渲染

javascript 复制代码
  {
        props.moreTextHref && (
              <Link to={props.moreTextHref}>{props.moreText}</Link>
       )}

第三种

类型断言来明确告诉 TypeScript props.moreTextHref 不会是 undefined。

javascript 复制代码
  <Link to={props.moreTextHref as string}>{props.moreText}</Link>

第四种

强制传递的就是字符串

javascript 复制代码
interface IProps {
    children?: ReactNode;
    title?: string;
    keywords?: string[];
    moreText?: string;
    // 把问号去掉
    moreTextHref: string;
}
相关推荐
Lank_M10 小时前
超分分块为什么按后端分:160与96的取舍
前端
流星。。方10 小时前
企业官网前端组件怎么拆?从落地页到内容页的分层思路
前端
Days205010 小时前
时间胶囊项目正式发布
javascript·gpt·php
deli00710 小时前
豹纹和斑马纹是怎么长出来的:调两个参数,花纹自己浮现
前端
进击的明明10 小时前
TypeScript速通笔记(上)
前端·面试·typescript
deli00710 小时前
萤火虫为什么会一起闪:调一个耦合系数,整片林子自己同步
前端
计算机魔术师10 小时前
英伟达联合超100家伙伴推出开放代理安全平台
前端
看谷秀10 小时前
arkts-12 鸿蒙生态/卡片
前端·arkts
朱 欢 庆10 小时前
el-table-v2 虚拟表格组件
前端·javascript·vue.js
OpsEye11 小时前
企业大模型用量成本该如何监控和管控?
javascript·ai编程