Добрый, возник вопрос - в реакт-приложении по клику на блок вызывается функция
const handleClick = (e) => {
dispatch(clickActions.add([e.clientX, e.clientY]));
}
в самом функциональном компоненте данные получаются через
const points = useSelector(state => state.points)
экшн clickAction и соответствующий редьюсер максимально примитивны - один возвращает 'ADD' и сам массив, который ему передали, а второй добавляет данные в стор.
Вопрос в следующем. сразу после диспатча я решил воспользоваться константой points - ведь логично, что я сделал диспатч и пора бы данные использовать. где-то внутри я понимаю, что тут не так что-то, может кто нибудь подробно и обстоятельно объяснить где я в размышлениях свернул не туда?
UPD1: если нужно прямо сейчас и сразу использовать данные, может быть их записать в переменную, а потом синхронизировать с глобальным стором? или так вообще грязно выйдет?
UPD2: код компонента:
// ... импорты
const Comp = () => {
const dispatch = useDispatch();
const points = useSelector(state => state.points);
const handleClick = (e) => {
dispatch(actions.clickActions.add([e.clientX, e.clientY]);
// вот тут я уже хочу использовать данные из стора
console.log(points); // Выводится старые данные, до диспатча, вопрос как все это дело переделать
}
return <button onClick={handleClick}>Click</button>;
}
// ... экспорт
UPD3: ясно, кажется я просто не до конца понял жизненный цикл компонентов