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

如何在TSX中使用三元运算符完成组件条件渲染

修复方案

你的代码存在两个核心错误,按顺序修复即可:

1. 异步请求处理逻辑错误

fetch返回的是Promise对象,无法同步读取返回数据的id属性,需要配合React状态钩子存储请求结果,使用useEffect触发异步请求。

2. TSX返回语法错误

return语句外层多包裹了不必要的大括号,TSX组件直接返回JSX表达式即可,额外的大括号会被识别为对象声明,导致编译失败。


适配TS的完整修复代码

import { useEffect, useState } from 'react'

// 先定义接口返回数据的TS类型,按你实际接口结构调整
interface ResponseData {
  id?: string
  // 其他返回字段自行补充
}

function YourComponent() {
  // 定义状态存储请求结果和异常标识
  const [data, setData] = useState<ResponseData | null>(null)
  const [isError, setIsError] = useState(false)

  useEffect(() => {
    const fetchData = async () => {
      try {
        const res = await fetch(url)
        const result = await res.json() as ResponseData
        setData(result)
      } catch (e) {
        console.log(e)
        setIsError(true)
      }
    }
    fetchData()
  }, [])

  // 注意返回表达式外层无多余大括号
  if (isError) return <span>fail</span>
  return data?.id ? <span>success!</span> : <span>fail</span>
}

如果你的项目不支持可选链运算符?.,可以把最后一行判断改为return (data && data.id) ? <span>success!</span> : <span>fail</span>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:15:05