reactjs 根据条件渲染不同的组件

dgjrabp2  于 2023-02-04  发布在  React
关注(0)|答案(1)|浏览(181)

我正尝试根据条件呈现组件。

exceptPath: ['home', 'person']
pathName = 'test'

return (
  <React.Fragment>
    {this.state.exceptPathNames.map((exceptPathName) => {
      console.log(exceptPathName);
      pathName === exceptPathName ? console.log('test') : <LinkGridLayout />;
    })}
  </React.Fragment>
);

如果pathName不是"home""person",我希望返回<LinkGridLayout />,否则不返回任何内容。

68bkxrlz

68bkxrlz1#

如果您想要做的只是为任何pathName值呈现一个LinkGridLayout组件,而**不是***"home""person"excludePath中的任何值 *),那么我建议使用下面的重构来检查数组中是否没有元素等于pathName,如果是,则有条件地呈现LinkGridLayout
示例:

exceptPath: ['home', 'person']
return (
  <>
    {!exceptPath.some((exceptPathName) => pathName === exceptPathName) && (
      <LinkGridLayout />
    )}
  </>
);

return (
  <>
    {exceptPath.every((exceptPathName) => pathName !== exceptPathName) && (
      <LinkGridLayout />
    )}
  </>
);

相关问题