Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用样式化组件更改其类列表动态更改的组件的样式_Javascript_Reactjs_Styled Components - Fatal编程技术网

Javascript 使用样式化组件更改其类列表动态更改的组件的样式

Javascript 使用样式化组件更改其类列表动态更改的组件的样式,javascript,reactjs,styled-components,Javascript,Reactjs,Styled Components,我试图切换组件的类列表,并基于此有条件地更改其样式 我正在做以下工作: const CalendarEvents = styled.div``; const Days = styled.div``; const Calendar = styled.div` ~ .show { ${CalendarEvents} { ${Days} { display: none; } } } `; 我有一个按钮可以切换类“show”,但是组件

我试图切换组件的类列表,并基于此有条件地更改其样式

我正在做以下工作:

const CalendarEvents = styled.div``;
const Days = styled.div``;

const Calendar = styled.div`
  ~ .show {
    ${CalendarEvents} {
      ${Days} {
        display: none;
      }
    }
  }
`;

我有一个按钮可以切换类
“show”
,但是组件似乎没有改变。单击按钮时,
Days
组件应具有
显示:none
样式

我是否错误地使用了
~
选择器


我想您需要使用与
(&)
符号,而不是
~
组合选择器,该选择器需要在主组件
日历
具有
时返回到主组件
。首先显示
类,然后您可以进行嵌套样式

const Calendar = styled.div`
 &.show {
    ${CalendarEvents} {
      ${Days} {
        display: none;
      }
    }
  }
`;

// equal to .Calendar.show > CalendarEvents > Days { ... }

请参阅文档:

我想您需要使用与
(&)
符号,而不是
~
组合选择器,该选择器需要返回到主组件
日历
,当它有
时。首先显示
类,然后您可以进行嵌套样式

const Calendar = styled.div`
 &.show {
    ${CalendarEvents} {
      ${Days} {
        display: none;
      }
    }
  }
`;

// equal to .Calendar.show > CalendarEvents > Days { ... }
见文件: