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

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

有四种方法解决

第一种 合并运算符 ??

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

javascript 复制代码
a ?? b

解释:

  • 如果 a 不是 nullundefined ,那么 a ?? b 会返回 a 的值。
  • 如果 anullundefined,那么 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;
}
相关推荐
想要成为糕糕手11 分钟前
NO.48 旋转图像 —— LeetCode 热题 100 面试导向深度解析
javascript·算法·面试
掘金者阿豪13 分钟前
从Oracle迁到金仓,第一个月踩的最大的坑就是它
前端·后端
JieE21225 分钟前
LeetCode 138 随机链表的复制|两种解法详解(哈希表 + 原地 O (1) 空间)
javascript·算法·面试
AZaLEan__28 分钟前
CSS文档流相关:BFC
前端·css
小林ixn42 分钟前
Vue3接入DeepSeek流式输出,把“二进制碎片”和“局部热更新”扒个精光
前端·vue.js·人工智能
2501_912784081 小时前
Taocarts 前端国际化实战:多语言与多币种怎么落地不翻车
前端·多语言·taocarts
光影少年1 小时前
RN中的StyleSheet.create 好处、内联样式弊端
react native·react.js·掘金·金石计划
悟空瞎说1 小时前
AI 流式对话页面滚动抖动深度优化实战
前端
秋天的一阵风1 小时前
🔥 ECMAScript 2026 来了!使用这些新特性,JS 代码直接少一半
前端·javascript·ecmascript 6
我是大卫1 小时前
【图】React源码解析-第六部分:高级算法与执行链路
react.js·源码