【问题标题】:Style tabs typescript样式标签打字稿
【发布时间】:2021-12-18 10:01:29
【问题描述】:

我正在尝试设置使用此代码创建的选项卡的样式,但似乎没有任何效果。 https://medium.com/weekly-webtips/create-basic-tabs-component-react-typescript-231a2327f7b6。这是我尝试过的最新方法,但它一直给我错误Set each active className on react Tab components

我也尝试过

然后创建了一个 css 文件来尝试在那里编辑选项卡,这确实有效,但不是我想要它做的改变字体样式选项卡名称、颜色等。

感谢您的帮助。

【问题讨论】:

    标签: css reactjs typescript tabs


    【解决方案1】:

    请在提问时用示例编写适当的代码。

    但你的解决方案是:

    // app.tsx
    import Tabs from "./tab"
    import "./style.css"
    
    const App= () => {
        return (
            <Tabs>
                <span title="Lemon">Lemon is yellow</span>
                <span title="Strawberry">Strawberry is red</span>
                <span title="spanear">spanear is green</span>
            </Tabs>
        )
    }
    
    export default App
    
    // tab.tsx
    
    import React, { ReactElement, useState } from "react"
    import TabTitle from "./tabtitle"
    
    type Props = {
      children: ReactElement[]
    }
    
    const Tabs: React.FC<Props> = ({ children }) => {
      const [selectedTab, setSelectedTab] = useState(0)
    
      return (
        <div>
          <ul className="ul">
            {children.map((item, index) => (
              <TabTitle
                key={index}
                title={item.props.title}
                index={index}
                setSelectedTab={setSelectedTab}
                selectedTab={selectedTab}
              />
            ))}
          </ul>
          {children[selectedTab]}
        </div>
      )
    }
    
    export default Tabs
    
    // tabtitle.tsx
    
    import React, { useCallback } from "react"
    
    type Props = {
        title: string
        index: number
        setSelectedTab: (index: number) => void
        selectedTab: number
    }
    
    const TabTitle: React.FC<Props> = ({ title, setSelectedTab, index, selectedTab }) => {
    
        const onClick = useCallback(() => {
            setSelectedTab(index)
        }, [setSelectedTab, index])
    
        return (
            <li className={`li ${selectedTab === index ? 'active' : ''}`}>
                <button onClick={onClick}>{title}</button>
            </li>
        )
    }
    
    export default TabTitle
    
    // style.css
    
    .li {
        list-style-type: none;
        float: left;
    }
    
    .active>button {
        background: red;
        font-weight: bold;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-07
      • 2020-06-27
      • 2021-01-06
      • 2018-07-17
      • 1970-01-01
      • 2020-08-02
      • 2018-06-06
      • 2018-02-09
      • 2019-01-02
      相关资源
      最近更新 更多