在第二个回调中在React中更新状态后如何console.log状态?

时间:2020-10-26 12:45:20

标签: reactjs react-hooks state setstate react-state

我想在更新之前和之后进入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);
            });
        }
    }

0 个答案:

没有答案