reactjs - 如何在 react Bootstrap 的选项卡内添加 if else

标签 reactjs react-bootstrap

我尝试执行以下代码,但出现一些错误。 错误:ReactBootstrap:Tab 组件不应该被渲染!它是一个抽象组件,仅作为 Tabs 组件的直接子组件有效。对于自定义选项卡组件,直接使用 TabPane 和 TabsContainer。


import { Row, Col, Tabs, Tab } from "react-bootstrap";
import One from "../One.jsx";
//One,Two .. etc There are more

render(
  <Tabs>
        <Tab eventKey={1} title="Tab 1"><One/></Tab>                           
        <Tab eventKey={2} title="Tab 2"><Two/></Tab>                           
        <Tab eventKey={3} title="Tab 3"><Three/></Tab>   
  {this.state.type === type && (
        <Tab eventKey={4} title="Tab 4"><Four/></Tab>                           
        <Tab eventKey={5} title="Tab 5"><Five/></Tab>                           
        <Tab eventKey={6} title="Tab 6"><Six/></Tab>  
 )}
  </Tabs>
)

最佳答案

我偶然发现了这个解决方案。

我曾经将组件名称声明为 Tab无需从 'react-bootstrap' 导入并且使用 JSX 条件渲染没有任何问题

但是当我将组件名称更改为另一个名称时,我发现错误来自 'react-bootstrap'我的 JSX 条件渲染不再起作用,因为 'react-bootstrap'不会接受 JSX 速记片段或任何内容。

所以我声明空组件来处理错误并使用 <>...</>在 JSX 条件渲染中,一切都适合我。

import React from "react";
import { Tabs } from "react-bootstrap";
    
const Tab = () => {
  return <></>; 
};
    
export const App = (props) => {
  return(
    <Tabs>
      <Tab eventKey={1} title="Tab 1"><One/></Tab>                           
      <Tab eventKey={2} title="Tab 2"><Two/></Tab>                           
      <Tab eventKey={3} title="Tab 3"><Three/></Tab>   
      {props.type === type && (
        <>
          <Tab eventKey={4} title="Tab 4"><Four/></Tab>                           
          <Tab eventKey={5} title="Tab 5"><Five/></Tab>                           
          <Tab eventKey={6} title="Tab 6"><Six/></Tab>  
        </>
      )}
    </Tabs>
  )
}

放在上面并不是一个好的做法,但是很容易声明条件。

如果您想进行更好的练习,请使用此选项。

import React from "react";
import { Tabs, Tab } from "react-bootstrap";
        
export const App = (props) => {
  return(
    <Tabs>
      <Tab eventKey={1} title="Tab 1"><One/></Tab>                           
      <Tab eventKey={2} title="Tab 2"><Two/></Tab>                           
      <Tab eventKey={3} title="Tab 3"><Three/></Tab>   
      {props.type === type && <Tab eventKey={4} title="Tab 4"><Four/></Tab>}
      {props.type === type && <Tab eventKey={5} title="Tab 5"><Five/></Tab>}
      {props.type === type && <Tab eventKey={6} title="Tab 6"><Six/></Tab>}
    </Tabs>
  )
}

关于reactjs - 如何在 react Bootstrap 的选项卡内添加 if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63914033/

相关文章:

reactjs - 如何查找不同元素的 getByRole 可用的属性?

javascript - 调用函数 "step by step"的正确方法

javascript - 容器、行、列 - 在 React-Bootstrap 中不起作用

javascript - 如何在 Bootstrap 中禁用 "last pressed"按钮状态?

javascript - tr 上的 React.js 属性被丢弃

javascript - 使用 ListView 自动完成 TextInput - 必须点击 ListView 两次才能选择列表项

node.js - 使用 nextjs 应用程序注册 service worker

reactjs - React hook Form 知道何时修改值

react-bootstrap - React-bootstrap 弹出窗口在内容悬停时关闭

javascript - React-Bootstrap表单切换按钮