React Js 按钮切换/样式化组件

Posted

技术标签:

【中文标题】React Js 按钮切换/样式化组件【英文标题】:React Js Button Toggle/ Styled Components 【发布时间】:2020-04-17 14:22:39 【问题描述】:

我的风格 从“反应”导入反应; 从“样式组件”导入样式;

export const DivMenuButton = styled.div`
    border: 0px;
    backgroundColor: #000;
    height: 400px;
    width: 200px;
`;

我的回报:

import  DivMenuButton  from './styles';

export default function Menu() 
    const [open, setOpen] = useState(0); 
    const handleClick = e => 
      e.preventDefault();
      setOpen(!open);
    ;
    return (
      <DivMenuButton>
        <Button
          style= margin:0, padding: 0, height: "30px", width: "100%", borderRadius:'0px' 
          onClick=handleClick
        >
          Button
        </Button>
      </DivMenuButton>  
    );

我还想知道如何做到以下几点:

我有一个开放状态

我的 div 将从 400 像素开始 单击按钮将获得 30px 但我不知道如何使用样式组件来做到这一点

【问题讨论】:

看到这个SO answer 他继续活跃 = 道具活跃 我可以创建任何名称吗?如何打开和支撑打开? 【参考方案1】:

使用样式组件props

试试这个:

export const DivMenuButton = styled.div`
    border: 0px;
    background-color: #000; // was wrong syntax
    height: 400px;
    width: $props => props.width
`;

export default function Menu() 
    const [open, setOpen] = useState(false); 
    const handleClick = e => 
      // e.preventDefault(); no need 
      setOpen(!open);
    ;

    return (
      <DivMenuButton width=open ? '30px' : '400px'>
        <button
          style= margin:0, padding: 0, height: "30px", width: "100%", borderRadius:'0px' 
          onClick=handleClick
        >
          Button
        </button>
      </DivMenuButton>   
    );


【讨论】:

你好,当我点击我的按钮时,div 将继续使用相同的道具并且不会改变。例如,她从 400 高度开始,我点击一个按钮,她会转到 40px 对不起,我不明白,你能解释更多吗?主要问题是关于改变 div 的宽度而不是高度?

以上是关于React Js 按钮切换/样式化组件的主要内容,如果未能解决你的问题,请参考以下文章

样式化的组件导致 react-dom.production.min.js:4482 错误:缩小的 React 错误 #31;

TypeScript:为样式化的组件元素扩展 React 组件道具

使用 React.js 和 Material-UI 简化样式化的组件媒体查询

使用 Themeprovider 和样式化组件实现暗模式

在 React JS 中的组件之间切换

在样式化组件中设置 React 组件道具