Использование реакция 16.8.2 , крючки API .
Redux начальное состояние :
const initialState = {
name: one,
count: 1,
}
Компонент
function CompTwo(props) {
useActiveCount(setActiveCount, 2);
useEffect(() => {
// activeCount is still 1
if(activeCount === 2) {
setActiveName('two')
}
});
}
const mapStateToProps = state => ({
activeCount: state.count,
});
const mapDispatchToProps = dispatch => ({
setActiveCount: count => dispatch(updateActiveCount(count)),
setActiveName: name => dispatch(updateActiveName(name),
});
export default connect(mapStateToProps, mapDispatchToProps)(CompTwo);
useActiveCount
const useActiveCount = function (setActiveCount, count) {
useEffect(() => {
setActiveCount(count);
})
}
В CompTwo
, если я установлю счет useActiveCount(setActiveCount, 2);
перед установкой активного имени setActivePage('two')
, я не должен получить новое значение 2
, в activeCount
prop?
Устанавливается activeCount
в 2, когда я проверяю значение состояния в логере резервирования в консоли dev-tool, но в useEffect
коде CompTwo
я все равно получаю более старое значение activeCount
, то есть 1
.
Почему это происходит?