【发布时间】:2021-02-27 17:02:00
【问题描述】:
我正在调查第 3 方对 PostCss 组件的反应
我在其中看到属性 isOpen 从外部收到
import React, { Component } from 'react';
import classNames from 'classnames/bind';
import PropTypes from 'prop-types';
import styles from './Modal.css';
class Modal extends Component {
render() {
const {
isOpen,
} = this.props;
const cx = classNames.bind(styles);
const ModalClassName = cx({
Modal: true,
isOpen: isOpen,
});
return (
<div className={ModalClassName} tabIndex={0}>
... modal content ...
</div>
)
}
}
Modal.propTypes = {
isOpen: PropTypes.bool.isRequired,
};
export default Modal;
在 Modal.css 中我可以看到隐藏此模态组件的样式
:local(.Modal) {
&:not(:local(.isOpen)) {
visibility: hidden;
opacity: 0;
}
}
/* ------------- I miss this one as well ------------- */
:local(.isOpen) {
@media print {
position: static !important;
}
}
这是 CSS 中的 isOpen 作为属性传递给组件的同一个变量还是 isOpen 名称只是巧合?
如果是,为什么isOpen 在 CSS 中是可见的?您能否给我参考一下我在哪里读到的。
在@JAM 提供有用的澄清后,让我重新表述我的问题。
Modal 属性Modal.props.isOpen 中的值如何触发css 样式.isOpen 并影响Modal 组件的可见性。问题不在于类名库。
:local(.Modal) {
&:not(:local(.isOpen)) {
visibility: hidden;
opacity: 0;
}
}
【问题讨论】: