Я установил эффект внутри моего компонента, который меняет представление, если изменяется другой атрибут состояния.Но по какой-то причине, когда компонент монтируется, эффект запускается, даже если значение 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
изменяется.НЕ когда он монтируется.