我想在更新之前和之后进入console.log()
searchActive
状态。最初,其值为false
。当我以正常顺序将第二个console.log
放在setSearchActive
之后时,它将在状态更新之前运行,因此两个console.log
都返回false
。因此,我将第二个放入状态更新程序的回调函数中,但是,我收到一条错误消息,“警告:来自useState()和useReducer()的状态更新Hooks不支持第二个回调参数。要在渲染后执行副作用,请使用useEffect()“ 在组件主体中声明它。第二个日志永远不会运行。我该如何解决这个问题?
function startSearch (e) {
let searchresult = document.querySelector('.search-result');
if(!searchActive&&e.target.value!==null){
searchresult.classList.add('search-active');
console.log(searchActive);
setSearchActive(true,()=>{
console.log(searchActive);
});
}
}