[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;
}
相关推荐
阿蒙Amon7 分钟前
JavaScript学习笔记:4.循环与迭代
javascript·笔记·学习
爱上妖精的尾巴13 分钟前
6-3 WPS JS宏 add、delete、size、clear集合成员添加与删除
javascript·wps·js宏·jsa
郑州光合科技余经理18 分钟前
海外版生活服务系统源码 | 外卖+跑腿一站式平台技术解析
java·开发语言·javascript·git·spring cloud·php·生活
fruge24 分钟前
Lodash 源码精读:防抖节流的实现细节与边界场景
前端
yuzhiboyouye25 分钟前
怎么熟悉一个web前端项目的业务呢?
前端
GISer_Jing27 分钟前
AI在前端营销和用户增长领域应用(待补充)
前端·人工智能
橘子海全栈攻城狮36 分钟前
【最新源码】基于springboot的会议室预订系统设计与实现 014
java·开发语言·前端·spring boot·后端·spring·自动化
1024肥宅37 分钟前
前端常用模式:提升代码质量的四大核心模式
前端·javascript·设计模式
哆啦A梦15881 小时前
商城后台管理系统 04,商品添加-清空列表
javascript·vue.js·elementui
哆啦A梦15881 小时前
商城后台管理系统 06,类目选择实现
javascript·vue.js·elementui