如何使用 React useState Hook 设置显示样式 属性

How To Set Display Style Property Using React useState Hook

我正在尝试切换元素的显示 属性 虽然 React 不会抛出错误,但浏览器会抛出错误

下面是我的 React 代码

import React ,{useState} from 'react'
import logo from './language.svg'
import './country.css'
const displayShow = "block !important"
const displayHide = "none !important"
function Country() {
    const [languageSelectDisplay, setlanguageSelectDisplay] = useState(displayHide)

    const toggleLanguageSelect = ()=>{
        return languageSelectDisplay === displayHide ? setlanguageSelectDisplay(displayShow) : setlanguageSelectDisplay(displayHide)

   return(
         <section className="language-options-container" id='language-options-container' 
         style={{display : languageSelectDisplay}}>
       <section />
)

    }

以下是 Firefox 抛出的错误

Error in parsing value for ‘display’.  Declaration dropped.

您可以考虑使用三元,这是当前隐藏元素的正确反应方式:

{showLogin?<section className="language-options-container" id='language-options-container'/>:null}

const mycomp = () => {
    const [showLogin, setShowLogin] = React.useState(false);
    
    const onClick = () => setShowLogin(!showLogin)
    
    return(<div id={"main"}>
{showLogin?<section className="language-options-container" id='language-options-container' />:null}</div>);

}

ReactDOM.render(<mycomp/>, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>