使用三元语句根据shouldRenderPlanA
属性(解析为真或假)呈现不同的JSX。然而,问题是在shouldRenderPlanA
三进制检查中出现以下错误:
"意外令牌?
,预期令牌:
">
谁能解释一下我哪里可能出错了?TIA
return (
<>
{options.map(option)}
<StyledRow>
{variousOptions.map((opt) => (
{shouldRenderPlanA ? (
<StyledLabelOptionOne
variousProps={variousProps}
/>
) : (
<StyledLabelOptionTwo
variousProps={variousProps}
/>
)}
))}
</StyledRow>
</>
);
我怀疑这与发生在地图内的支票有关?
你不能在JSX中使用嵌套的大括号{}
,删除内部的大括号,它将工作:
return (
<>
{options.map(option)}
<StyledRow>
{variousOptions.map((opt) => shouldRenderPlanA ? (
<StyledLabelOptionOne
variousProps={variousProps}
/>
) : (
<StyledLabelOptionTwo
variousProps={variousProps}
/>
))}
</StyledRow>
</>
);
问题在这里
(
{shouldRenderPlanA ? (
你不能期望返回一个对象,而是
(shouldRenderPlanA ?
或者尝试在开始时写一些简单的东西,例如flag?1:0
,以便在插入其他东西之前使其工作:)
你有一个错误,因为你没有返回映射内的值
也许这对你有帮助
return (
<>
{options.map(option)}
<StyledRow>
{variousOptions.map((opt) => {
return shouldRenderPlanA ? (
<StyledLabelOptionOne
variousProps={variousProps}
/>
) : (
<StyledLabelOptionTwo
variousProps={variousProps}
/>
}
))}
</StyledRow>
</>
);
必须去掉括号,并返回元素