重复问题
- 我搜索了现有的问题
最新版本
- 我测试了最新版本
重现步骤 🕹
- 使用
AvatarGroup
组件并在其中循环一个头像数组。 - 不要直接在
AvatarGroup
中进行条件判断,而是渲染一个子组件并传递当前的头像数据。 - 在子组件上创建一个条件来决定是否渲染头像,或者返回 null 以不渲染,这样就不会渲染头像。
这里是实时演示:SANDBOX-MATERIALUI-AVATAR-GROUP
当前行为 😯
在某些情况下,我需要在子组件中进行条件判断,以便在使用钩子获取一些数据后决定是否渲染头像。然而,将 null 返回以不渲染头像仍然被 avatargroup
视为 counted
导致它仍然渲染 +
图标。
预期行为 🤔
不要计算返回的空头像,以便不会渲染 +
图标。
上下文 🔦
这使得组件看起来有点问题,即使没有头像也会渲染 +
图标。我不确定这是不是我们的限制,我们不应该这样做,还是应该采用另一种方法。谢谢!
你的环境 🌎
npx @mui/envinfo
Don't forget to mention which browser you used.
Output from `npx @mui/envinfo` goes here.
3条答案
按热度按时间goqiplq21#
这个问题是由于在
AvatarGroup
中,额外的头像计算是基于子对象的数量(children.length
)。在应用null
条件之前,您的自定义AvatarChecker
组件被视为有效的子对象。我不确定我们是否应该正式支持 AvatarGroup 内的自定义组件。我认为这更多地是一种增强,而不是一个错误。我会保持这个问题开放,尽管我不确定它是否可行。fxnxkyjh2#
@paoloLigsay
正如@ZeeshanTamboli所提到的,他认为这是一个增强功能而不是一个错误。
与此同时,您可以使用以下代码来实现您的需求:
将以下代码放在组件上方
const notThese = ["W", "E", "H", "N"];
让我们看看接下来会发生什么。
ht4b089n3#
Hi @ZeeshanTamboli@PunitSoniME ,我同意将此视为增强功能,因为在没有自定义组件的情况下也能完美运行。感谢您的输入!