使用 useState 隐藏/显示 div?
hiding/ revealing divs with useState?
这里是 React 开发新手。
这是我的状态和函数,它可以将 ul 从 display:none 切换到 display:block
const [dropDown, setDropdown] = useState('hidden')
const [icon, setIcon] = useState('\u2795')
const handleHidden = () => {
if (dropDown === 'hidden') setDropdown('active')
if (dropDown === 'active') setDropdown('hidden')
if (icon === '\u2795') setIcon('\u2796')
if (icon === '\u2796') setIcon('\u2795')
}
图标只是在 unicode“+”和“-”之间切换
和相应的 onClick 函数在两者之间切换 类:
<span onClick={() => handleHidden()} className='plus-minus'>{icon}</span></h3>
除了这段代码之外,我还映射了一组学生并将他们的所有值显示在 div 中。
问题是当我单击 span 所有项目打开和关闭时(预期)。如果仅让我单击的项目打开和关闭而其余的保持隐藏,接下来的步骤是什么?
改为在状态中使用单个索引变量,它指示当前打开的项目。类似于
const [openIndex, setOpenIndex] = useState(-1); // none open initially
const makeHandleClick = i => () => {
setOpenIndex(i === openIndex ? -1 : i);
};
// ...
return students.map((student, i) => (
// ...
<span onClick={makeHandleClick(i)} className='plus-minus'>
{openIndex === i ? '\u2795' : '\u2796'}
}</span>
要检查渲染时应该打开还是关闭学生项目,请检查 i === openIndex
。也不需要 icon
状态变量。
这里是 React 开发新手。
这是我的状态和函数,它可以将 ul 从 display:none 切换到 display:block
const [dropDown, setDropdown] = useState('hidden')
const [icon, setIcon] = useState('\u2795')
const handleHidden = () => {
if (dropDown === 'hidden') setDropdown('active')
if (dropDown === 'active') setDropdown('hidden')
if (icon === '\u2795') setIcon('\u2796')
if (icon === '\u2796') setIcon('\u2795')
}
图标只是在 unicode“+”和“-”之间切换
和相应的 onClick 函数在两者之间切换 类:
<span onClick={() => handleHidden()} className='plus-minus'>{icon}</span></h3>
除了这段代码之外,我还映射了一组学生并将他们的所有值显示在 div 中。
问题是当我单击 span 所有项目打开和关闭时(预期)。如果仅让我单击的项目打开和关闭而其余的保持隐藏,接下来的步骤是什么?
改为在状态中使用单个索引变量,它指示当前打开的项目。类似于
const [openIndex, setOpenIndex] = useState(-1); // none open initially
const makeHandleClick = i => () => {
setOpenIndex(i === openIndex ? -1 : i);
};
// ...
return students.map((student, i) => (
// ...
<span onClick={makeHandleClick(i)} className='plus-minus'>
{openIndex === i ? '\u2795' : '\u2796'}
}</span>
要检查渲染时应该打开还是关闭学生项目,请检查 i === openIndex
。也不需要 icon
状态变量。