在下面的代码中,当我调用时,我_toggleSearch
同时更新了 2 个钩子。
toggleSearchIsVisible
是一个简单的布尔值,但是,setActiveFilter
钩子必须在前一个searchIsVisible
状态中传递。
我如何确定传入时其他状态尚未更新?或者我应该如何重组一切?以前setState
我可以很容易地通过以前的状态。
const [activeFilter, setActiveFilter] = useState('SHOW_ALL');
const [searchIsVisible, toggleSearchIsVisible] = useState(false);
const _toggleSearch = () => {
setActiveFilter(searchIsVisible ? 'SHOW_SEARCH' : 'SHOW_ALL');
toggleSearchIsVisible(!searchIsVisible);
};
我现在已经这样做了:
const _toggleSearch = () => {
if (searchIsActive) {
setActiveFilter('SHOW_ALL');
toggleSearchIsActive(false);
} else {
setActiveFilter('SHOW_SEARCH');
toggleSearchIsActive(true);
updateSearchValue('');
}
};
任何其他建议表示赞赏!