简单的三元运算符抛出意外的错误消息
Simple ternary operator throwing unexpected error message
我有一个包含子路径链接的 React 应用程序,我使用 subdomain/path 填充每个详细信息页面上的道具。
换句话说,当用户导航到一个页面时,我使用 pathname
来填充页面标题和内容等内容。其中一个 pages/routes 包含一个 name/title,它通常用大写的驼峰式大小写(“SoCal”),因此我使用以下代码,其中包含一个三元运算符,用于确定 location = "socal"
是否为是的,我希望将 location
变量设置为“SoCal”,这样当我使用 <h1>{location}</h1>
填充页面标题时,它会正确显示。
问题是,当我使用三元运算符时,它 总是 将位置设置为南加州,即使 location
的原始值是德克萨斯州(例如) .好像我做错了什么,但看不到它是什么。
var location = titleCase(window.location.pathname.replace("/", ""));
function detailPage() {
const [filter] = useState(location.toLowerCase());
location = "socal" ? location = "SoCal" : location;
console.log(location)
请注意,在上面的示例中,我使用的是 =
而不是您所期望的 ===
因为当我使用 ===
时代码会中断并且 returns错误信息:
"Expected an assignment or function call and instead saw an
expression. (no-unused-expressions)"
关于我做错了什么的想法?
您的三元运算符的顺序不正确。您将希望使用以下语法在代码中利用三元运算符。
应该是这样的:
variable = (conditional statement) ? (value if true) : (value if false)
你的情况。
location = location === "socal" ? "SoCal" : location
问题出在这里:
location = "socal" ? location = "SoCal" : location;
三元语句的第一部分是条件检查。您正在检查“socal”的值是真还是假。您还在不允许的运算符中进行赋值。
我有一个包含子路径链接的 React 应用程序,我使用 subdomain/path 填充每个详细信息页面上的道具。
换句话说,当用户导航到一个页面时,我使用 pathname
来填充页面标题和内容等内容。其中一个 pages/routes 包含一个 name/title,它通常用大写的驼峰式大小写(“SoCal”),因此我使用以下代码,其中包含一个三元运算符,用于确定 location = "socal"
是否为是的,我希望将 location
变量设置为“SoCal”,这样当我使用 <h1>{location}</h1>
填充页面标题时,它会正确显示。
问题是,当我使用三元运算符时,它 总是 将位置设置为南加州,即使 location
的原始值是德克萨斯州(例如) .好像我做错了什么,但看不到它是什么。
var location = titleCase(window.location.pathname.replace("/", ""));
function detailPage() {
const [filter] = useState(location.toLowerCase());
location = "socal" ? location = "SoCal" : location;
console.log(location)
请注意,在上面的示例中,我使用的是 =
而不是您所期望的 ===
因为当我使用 ===
时代码会中断并且 returns错误信息:
"Expected an assignment or function call and instead saw an expression. (no-unused-expressions)"
关于我做错了什么的想法?
您的三元运算符的顺序不正确。您将希望使用以下语法在代码中利用三元运算符。
应该是这样的:
variable = (conditional statement) ? (value if true) : (value if false)
你的情况。
location = location === "socal" ? "SoCal" : location
问题出在这里:
location = "socal" ? location = "SoCal" : location;
三元语句的第一部分是条件检查。您正在检查“socal”的值是真还是假。您还在不允许的运算符中进行赋值。