首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >若条件jsx的反应jsx

若条件jsx的反应jsx
EN

Stack Overflow用户
提问于 2021-09-09 13:55:17
回答 4查看 52关注 0票数 0
代码语言:javascript
复制
  const [grouppermission, SetGrpPermissions] =useState([]);

  const Group = async () => {
    const response = await userModulePermission("20",_UsersId);
    console.log("responseGROUP: ", response.data)
    SetGrpPermissions(response.data.map(user => ({
          udf_Users_IsHaveModuleAccess:user.udf_Users_IsHaveModuleAccess
        })))
  }
  useEffect(() => {
    Group();
  }, [reRender]);

这就是结果

这就是if条件的位置,我只想知道如果udf_Users_IsHaveModuleAccess是0,那么它就不会是createElement,如果1,那么它就会创建。

代码语言:javascript
复制
    {grouppermission[0].udf_Users_IsHaveModuleAccess &&
        <CCreateElement
        items={groupperms}
        components={{
          CSidebarNavDivider,
          CSidebarNavDropdown,
          CSidebarNavItem,
          CSidebarNavTitle
        }}
      />
    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-09-09 14:06:28

你要放吗?

代码语言:javascript
复制
{grouppermission[0]?.udf_Users_IsHaveModuleAccess !== 0 &&
        <CCreateElement
        items={groupperms}
        components={{
          CSidebarNavDivider,
          CSidebarNavDropdown,
          CSidebarNavItem,
          CSidebarNavTitle
        }}
      />
    }
票数 0
EN

Stack Overflow用户

发布于 2021-09-09 13:59:19

答案是,如果不是零,那么创建它:

代码语言:javascript
复制
{grouppermission[0].udf_Users_IsHaveModuleAccess !== 0 &&
        <CCreateElement
        items={groupperms}
        components={{
          CSidebarNavDivider,
          CSidebarNavDropdown,
          CSidebarNavItem,
          CSidebarNavTitle
        }}
      />
    }

或者如果你想明确地说它是1:

代码语言:javascript
复制
{grouppermission[0].udf_Users_IsHaveModuleAccess === 1 &&
        <CCreateElement
        items={groupperms}
        components={{
          CSidebarNavDivider,
          CSidebarNavDropdown,
          CSidebarNavItem,
          CSidebarNavTitle
        }}
      />
    }

我更喜欢在函数中进行有条件的呈现。假设这是一个函数组件:

代码语言:javascript
复制
const RenderCCreateElement = ():JSX.Element => {
      if(grouppermission[0].udf_Users_IsHaveModuleAccess === 0){
            return (<React.Element />);
      }

      if(grouppermission[0].udf_Users_IsHaveModuleAccess === 1){
            return (
              <CCreateElement
            items={groupperms}
            components={{
              CSidebarNavDivider,
              CSidebarNavDropdown,
              CSidebarNavItem,
              CSidebarNavTitle
            }}
          />
            );
      }

     return (<React.Element />);
};

例如,您可以这样称呼它:

代码语言:javascript
复制
<div>{RenderCCreateElement()}</div>
票数 0
EN

Stack Overflow用户

发布于 2021-09-09 14:05:34

看起来像是有一些错误,您需要首先检查它是否是空数组,首先是

代码语言:javascript
复制
{
  grouppermission[0]?.udf_Users_IsHaveModuleAccess && (  //<-- Add optional chaining here
    <CreateElement   // <-- CCreateElement is this a typo?
      items={groupperms}
      components={{
        CSidebarNavDivider,
        CSidebarNavDropdown,
        CSidebarNavItem,
        CSidebarNavTitle
      }}
    />
  );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69119518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档