如何在SetConfirmDialog等setState类状态更新函数中编写条件判断语句?
问题根因
你在对象字面量的title属性值位置错误嵌套了多余的大括号{}:
- 在JSX标签内插入JS表达式需要用
{}包裹,但普通对象字面量的属性值直接写JS表达式即可,不需要额外套{} - 多余的大括号会导致
title被赋值为一个对象,而非你预期的字符串,因此条件判断逻辑不会生效
另外你当前的subTitle是固定文案,和操作行为不匹配,可以同步做条件适配。
修正后代码
<Button color={user.active ? "success" : "error"} variant="text" startIcon={<UserCheck />} title={user.active ? "غیر فعال کردن" : "فعال کردن"} onClick={() => { SetConfirmDialog({ isOpen: true, // 移除多余的外层大括号,直接使用三目表达式作为属性值 title: user.active ? 'کاربر فعال گردد؟' : 'کاربر غیر فعال گردد؟', // 副标题同步适配操作类型 subTitle: user.active ? 'شما مطعن هستید که کابر باید فعال گردد؟' : 'شما مطعن هستید که کابر باید غیر فعال گردد؟' }); }} >
内容的提问来源于stack exchange,提问作者Hossein Azizdokht
相关产品推荐
相关产品推荐

