我希望根据React类组件状态变量是否为true为html
overflow-y: hidden
选择器(而不是元素)设置overflow-y: hidden
。这有可能吗?
发布于 2019-11-22 22:16:40
如果您的意思是要将溢出-y应用于实际的HTML标记,那么将此代码放入呈现中对我有用。
...
render() {
let html = document.querySelector('html');
this.state.test === "test" ? html.style.overflowY = "hidden" : html.style.overflowY = "visible";
return (
....
)
};
发布于 2019-11-22 21:58:08
你能做到的
function MyComponent() {
// Set your state somehow
const [something, setSomething] = useState(initialState)
// Use it in your className`
return <div className={!!something && 'class-name'} />
}
如果要使用多个类名,则流行的包是(适当命名的) classnames
。您可以这样使用它:
import cx from 'classnames'
function MyComponent() {
const [something, setSomething] = useState(initialState)
return <div className={cx({
'some-class' : something // if this is truthy, 'some-class' gets applie
})} />
}
发布于 2019-11-22 22:09:31
是的,有可能。你可以做到这一点。
function App() {
const [visible, setVisible] = useState(false);
useEffect(() => {
const htmlSelector = document.querySelector("html");
htmlSelector.style.overflowY = visible ? "unset" : "hidden";
}, [visible]);
return (
<button onClick={() => setVisible(prevState => !prevState)}>
Toggle overflow
</button>
);
}
https://stackoverflow.com/questions/59004945
复制