Reactjs 如何更改数组中的布尔值?
如何访问数组中的特定元素并将其值更改为相反的值?为了不复制代码,我想以这种方式显示模式窗口Reactjs 如何更改数组中的布尔值?,reactjs,Reactjs,如何访问数组中的特定元素并将其值更改为相反的值?为了不复制代码,我想以这种方式显示模式窗口 const [visiblePopup, setVisiblePopup] = useState([ { modalUsers: false, modalDetails: false, modalWarning: false, modalUpdate: false } ]); <script src="https://cdnjs.cloudflare.com
const [visiblePopup, setVisiblePopup] = useState([
{
modalUsers: false,
modalDetails: false,
modalWarning: false,
modalUpdate: false
}
]);
<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>
const[visiblePopup,setVisiblePopup]=useState([
{
莫达卢瑟:错,
modalDetails:错误,
modalWarning:错误,
modalUpdate:错误
}
]);
您可以尝试以下方法:
setVisiblePopup([...visiblePopup, modalUsers: true])
不要使用数组,只需使用object和create函数来切换状态
const [visiblePopup, setVisiblePopup] = useState({
modalUsers: false,
modalDetails: false,
modalWarning: false,
modalUpdate: false
});
togglePopup = name => setVisiblePopup(prevVisiblePopup => ({
...visiblePopup,
[name]: !prevVisiblePopup[name]
})
togglePopup('modalUpdate'); // to toggle modalUpdate
您可以使用单独的函数来处理这些模式切换:
const [visiblePopup, setVisiblePopup] = useState({
modalUsers: false,
modalDetails: false,
modalWarning: false,
modalUpdate: false
});
toggleModalUsers = () => setVisiblePopup(prevState => ({
...visiblePopup,
modalUsers: !modalUsers
})
toggleModalDetails = () => setVisiblePopup(prevState => ({
...visiblePopup,
modalDetails: !modalDetails
})
toggleModalWarning = () => setVisiblePopup(prevState => ({
...visiblePopup,
modalWarning: !modalWarning
})
toggleModalUpdate = () => setVisiblePopup(prevState => ({
...visiblePopup,
modalUpdate: !modalUpdate
})
可能的副本: