【发布时间】:2023-04-11 07:10:01
【问题描述】:
如何像在 React JSX 中一样在 Blazor 中呈现条件元素?
例如在React:
export const LoginPage: FC = () => {
// useState's
// useEffect's
return <div>{!loadingState ? usernameState : <Spin />}</div>; // <-- Goal
};
我已经在 Blazor 中尝试过:
<div>
You logged in AS:
@if (_loading)
{
<Spin/>
}
else
{
@_userName
}
</div>
有什么办法可以写成一行吗?
【问题讨论】:
-
有人可能会说这在 React 和 Blazor 中都是丑陋的代码
-
你想做什么?实际问题是什么? Blazor 代码正在呈现片段,而不是返回值。每个分支都等价于
{...},而不是组件内部的表达式。 -
此外,React 的方式是使用具有不同状态的组件,而不是三元运算符来显示不同的表示。甚至还有一个Suspense 组件