You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React.js中字面量字符串拼接异常问题咨询

React路由路径拼接报「意外的字面量字符串拼接」?这么改就行

问题出在哪

你这段代码的问题是没必要把普通字符串拼接(+)和模板字符串(${})混着用,这种冗余写法会触发ESLint这类语法检查工具的no-useless-concat规则警告,也就是你看到的「意外的字面量字符串拼接」错误。

举个例子,你写的:

to={routeName.tutorClassView + '?classId=' + `${_.get(value, '_id')}`}

这里'?classId=' + ${_.get(value, '_id')}``完全是多余的操作——模板字符串本身就是字符串,直接整合到一个模板里就行,不用额外用+拼接。

两种修复方法

方法1:统一用模板字符串(最省事)

把所有内容都放进一个模板字符串里,彻底抛弃+拼接:

// 单个参数场景
to={`${routeName.tutorClassView}?classId=${_.get(value, '_id')}`}

// 多个参数场景
to={`${routeName.tutorClassView}?classId=${_.get(v, 'id')}&providerId=${_.get(v, 'provider.id')}`}

方法2:用URLSearchParams构建参数(更规范)

如果参数多、或者需要处理特殊字符编码,推荐用URLSearchParams来生成查询字符串,可读性和安全性更好:

// 单个参数
const params = new URLSearchParams();
params.append('classId', _.get(value, '_id'));
to={`${routeName.tutorClassView}?${params.toString()}`}

// 多个参数
const params = new URLSearchParams();
params.append('classId', _.get(v, 'id'));
params.append('providerId', _.get(v, 'provider.id'));
to={`${routeName.tutorClassView}?${params.toString()}`}

这种方式会自动帮你处理参数编码,避免特殊字符导致的路径异常。

内容的提问来源于stack exchange,提问作者Ram prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:10:31