javascript - 在三元运算符中 React Router <Link>

标签 javascript reactjs react-router jsx ternary-operator

我希望您在 React JSX 中使用以下三元运算符:

<Table.Cell>{`${user.company !== null ?  <Link to={`/companies/${user.company._id}`}>`${user.company.name}`</Link> : '' }`}</Table.Cell>

但是我得到以下显示值:[object Object]

当我使用这个三元运算符时,值显示在右侧:

<Table.Cell>{`${user.company !== null ? `${user.company.name}` : '' }`}</Table.Cell>

当我在没有三元运算符的情况下使用此 JSX 代码时,该值也是正确的:

<Table.Cell><Link to={`/companies/${ user.company._id}`}>{user.company.name_company}</Link></Table.Cell>

但是,我想使用条件 React Router Link 标签来创建超链接。我在三元运算符中使用其他 HTML 标记时也遇到同样的问题。

我做错了什么?

最佳答案

你的语法不正确。您应该像这样重写 JSX 中的三元检查:

<Table.Cell>{ user.company !== null ?  <Link to={`/companies/${user.company._id}`}>{user.company.name}</Link> : null }</Table.Cell>

或者你可以这样检查:

<Table.Cell>{ user.company !== null && <Link to={`/companies/${user.company._id}`}>{user.company.name}</Link> || null }</Table.Cell>

希望这有帮助。

关于javascript - 在三元运算符中 React Router <Link>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50772237/

相关文章:

javascript - 使用子字符串更改数组元素值

Javascript 函数不工作的问题

javascript - 服务器端在 React 中使用 Next.js 加载全局组件

javascript - React Router 和导航按钮

javascript - react 路由器和 typescript 抛出 "Can' t解析 'react-router-dom'“错误

javascript - str.replace 不会替换 $1

javascript - LoDash:减少 Angular 返回 0

javascript - react .js :You called `setState` with a callback that isn't callable

reactjs - 发现错误 : Method “props” is only meant to be run on a single node. 2

javascript - 未捕获的类型错误 : Cannot read property 'setState' of undefined