javascript - 如何在反应片段中进行多个条件渲染?
问题描述
我是 Reactjs 的新手,从今天下午开始,我一直被这个错误困扰,我仍然不知道我是如何不断收到错误的,'}' expected.
例如JSX expressions must have one parent element.
{
title: formatMessage({
id: 'accounts.table.options',
}),
fixed: 'right',
render: (_, record) => (
<>
{
(record?.is_activate && record?.status !== "initiating") &&
<a onClick={() => activateAdAccount(record)}>
Edit
</a>
(record?.is_activate && record?.status !== "initiating" && record?.status !== "error" && record?.status !== "processing") &&
<>
<Divider type="vertical" />
<a onClick={() => activateAdAccount(record)}>
Subscription Warning
</a>
</>
}
</>
),
},
我尝试用 react.Fragment 包装语句,但仍然遇到一些随机语法错误。重写代码片段的首选方法是什么?
解决方案
{
title: formatMessage({
id: 'accounts.table.options',
}),
fixed: 'right',
render: (_, record) => (
<>
{record?.is_activate && record?.status !== 'initiating' && (
<a onClick={() => activateAdAccount(record)}>Edit</a>
)}
{record?.is_activate &&
record?.status !== 'initiating' &&
record?.status !== 'error' &&
record?.status !== 'processing' && (
<>
<Divider type="vertical" />
<a onClick={() => activateAdAccount(record)}>
Subscription Warning
</a>
</>
)}
</>
),
},
您需要将两个 js 代码块(即第一个条件和第二个条件)放在单独的 {}(大括号)中。原因:React JSX 中花括号内的多个函数调用
推荐阅读
- javascript - 如何在 contenteditable 元素上禁用备忘录?
- python - 通过本地系统连接到 google colab
- flutter - 在flutter中设置输入并获取输出到自定义tensorflow lite
- r - R:组合向量以形成一个数据框,第一列是向量名称
- autodesk-forge - SVF2 Public Beta - 模型未转换为 SVF2
- c++ - 如何将 c 字符串引用传递给类函数模板?
- javascript - 如何使用javascript获取元素的链接?
- pandas - 每年对具有远期值的每日数据重新采样
- php - codeigniter mollie 支付网关集成问题
- css - 在其视口中居中 SVG