在react js中切换div可见性



AIM:单击一次图标时显示div,如果再次单击则隐藏。

问题:不断出现这个错误。我已经更改了它,但仍然无法工作。

Expected an assignment or function call and instead saw an expression  no-unused-expressions
'isHidden' is not defined 

p.S非常新的反应和反应挂钩

这就是我所做的,我现在不知道该做什么,请指出问题并帮助我解决这个问题,我们将不胜感激。

const [bar, setBar] = useState(()=> {isHidden: true});
function toggleHidden(){
setBar(prevBar =>{
return {bar: !isHidden}
})
}

这里有一个使用代码的React示例。评论描述了我所做的更改。

const {useState} = React;
function Example() {
// Just simply set the state with an object
const [bar, setBar] = useState({ isHidden: false });

function toggleHidden() {
// Then set the state to the opposite of 
// what it currently is in your toggle function
setBar({ isHidden: !bar.isHidden });
}
// Now simply set the visibilty based on the state
const style = { visibility: bar.isHidden ? 'hidden' : 'visible' };
return (
<div>
<div style={style}>Showing</div>
<button onClick={toggleHidden}>
Click me
</button>
</div>
);
};
// Render it
ReactDOM.render(
<Example />,
document.getElementById("react")
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js"></script>
<div id="react"></div>

const [bar, setBar] = useState({isHidden : true});
function toggleHidden(){
setBar(prevBar => !prevBar.isHidden)
}

传递对象,而不是将函数传递给setBar。就像我的例子一样。state只是一个值setState是唯一应该是函数的东西

useState(()=> {isHidden: true});更改为useState(()=> ({ isHidden: true }));。注意括号。在toggleHidden函数中也是如此,您必须在返回的对象周围添加括号,否则{括号将被解释为函数的开始。此外,在toggleHidden函数中,您必须使用prevBar来更改状态,即setBar(prevBar => ({ isHidden: !prevBar.isHidden }));

最新更新