Возвращать нужно массив с стейт и сет стейт, еще функцию которую возвращайте сейчас поменяйте на конст и его тоже верните. Ну и потом подключайте хук в шоп компонент и достаете что вам нужно.
снова проблема, возвращаю state, setState, toggleDrawer, если toggleDrawer задавать для события клик в другом компоненте , в shop state не меняется, вы написали что нужно и setState вернуть, а как его использовать не очень понятно
А можешь импорты которые с библы не делать между ними пустую строку а совместно их писать а свой импорты которые не из библы писать ниже и все вместе что бы понимать что где и когда
Работает все правильно, как ты и написал, если ты хочешь возращать новое значение стейта каждый раз при его изменении то тебе надо отслеживать его изменение с помощью useEffect внутри хука
можно пример?) я чет вообще понять не могу, или статья ?
на 12 строке получаю функцию и state, в другом компоненте мне нужна только функций toggleDrawer, которая при клике меняет state, этот state нужно каждый раз новый получать в Shop, вы написали использовать useEffect, не понятно как его использовать, чтоб при вывозе toggleDrawer state обновлялся в Shop.jsx
При двух разных хука в разных компонентах создается разный стейт для этих двух компонентов.
Если ты в app вызвал твой хук , и хочешь из shop обращаться к toggleDrawer который сейчас в app то это не сработает.
Хотя конечно если эти компоненты рядом, ты можешь колбеком прокинуть туда toggleDrawer тогда изменения будут улавливаться и в другом компоненте. Но это странно немного
насколько я понял state будет меняться только там где вызван хук, здесь в Header я использую только toggleDrawer здесь он и меняется, и поэтому в shop не меняется state, у них как бы они разные, или я неправильно понял
у тебя независимые стейты здесь, но ничего не мешает всё что нужно из первого компонента, прокинуть во второй
из header в shop?
Сложно) Если у меня toggleDrawer вызывается в header и меняет state, этот измененный state я получить в другом компоненте не смогу?
так пускай это будет стейт Shop, а сеттер передай в Header
ну я до этого так и делал) думал можно будет сделать без передачи через пропсы, т.к. в других компонентах ещё нужен будет этот toggleDrawer
Только через контекст или редукс. Ну или пропсами прокидывать до нужного компонента.
ну можешь взять сетйт менеджер, и тогда уже плясать со стейтом как угодно
Обсуждают сегодня