我在我的组件中设置了一个效果,如果另一个状态属性发生变化,它会改变视图。但是由于某种原因,当组件挂载时,即使 的值detailIndex没有改变,效果也会运行。
const EventsSearchList = () => {
    const [view, setView] = useState('table');
    const [detailIndex, setDetailIndex] = useState(null);
    useEffect(() => {
        console.log('onMount', detailIndex);
        // On mount shows "null"
    }, []);
    useEffect(
        a => {
            console.log('Running effect', detailIndex);
            // On mount shows "null"!! Should not have run...
            setView('detail');
        },
        [detailIndex]
    );
    return <div>123</div>;
};
为什么会这样?
更新:如果不清楚,我正在尝试在组件因detailIndex更改而更新时运行效果。不是在安装时。