Jahongir
Андрей
То что законектил из mapStateToProps и MapDispatchToProps
Что значит "видит". Не нужно свою терминологию придумывать.
Jahongir
Вот простой пример
Artem
столкнулся с проблемой. . с сервера получаю данные вывожу на страницу а у меня текст с тегами p, span и прочее, как исправить?
Ilia
Ну во первых при инициализации там ничего нет, пока твой axios не отработает, а когда после action сработает, то и profile обновится и будет тот, который пришел в axios
Artem
Когда вижу или слышу "компонента", то зубы скрипят и жжение в нижней части спины ощущаю
Ilia
То что законектил из mapStateToProps и MapDispatchToProps
Коннект обращается к стору, берет оттуда то что ты хочешь и после мержит их с пропсами которые вкинули в твой компонент из родителя
Андрей
Вот простой пример
Ок Предположим что все пропсы кладутся в this. Как ты прокинешь все пропсы в дочерний компонент?
Ilia
Кажется дошло)
https://ru.reactjs.org/docs/higher-order-components.html почитай вот
Jahongir
https://ru.reactjs.org/docs/higher-order-components.html почитай вот
До хоков еще не дошел, но дойду скоро)
Sergey
Когда уже люди научатся скриншоты делать? 👀 неоднократно в чате всплывает подобное
Ilia
Ну может человек не может поставить телеграм на рабочую станцию?)
Jahongir
Да, нет, бывает твой комп не подключен к инету, а раздать моб.точку доступа и потом заскринить и потом открыть телегу потом кинуть в сообщество лень, лучше сфоткать хоть четко и скинуть) сорри если достовляет неудобства
Jahongir
Ничего😅
Zaff
привет. у меня вот такой объект продукта, юзер выбирает параметры на странице продукта селектом, потом отправляет в корзину. как я должен передавать выбранные параметры в редюсер корзины? и вообще, у меня должен быть экшен на случай выбора параметра?
Ilia
сегодня вроде не пятница, куда всех разнесло?) люди
Ну ты такие вопросы задаешь интересные) мы же не знаем каким образом у тебя построено приложение) Да можно экшеном передавать id товара и потом в корзине через id их подгружать)
Zaff
Ну ты такие вопросы задаешь интересные) мы же не знаем каким образом у тебя построено приложение) Да можно экшеном передавать id товара и потом в корзине через id их подгружать)
мне не понятно как в итоге в корзине показывать выбранные параметры отдельным объектом? или выпиливать из объекта ненужные параметры? и как вообще передавать выбранные параметры в редюсер, тоже отдельно?
Ilia
а action payload может принимать объект или массив?
Да все что хочешь, даже функции 😁, но я тебе это не говорил) P.s. числа, строки, объекты и массивы - это ок
Zaff
Да все что хочешь, даже функции 😁, но я тебе это не говорил) P.s. числа, строки, объекты и массивы - это ок
это делать плохо? ) так я смогу передать айди товара, и айди выбранного параметра хм, то есть функции - не ок. понял, спасибо
MVD
У меня есть объект, в котором есть ключ 'Count', но при этом я не знаю как он написан (uppercase или lowercase). Как мне достать его?
MVD
const count = tvoiObject.Count || tvoiObject.count откуда вы такие структуры берете?))
'COUNT' 'cOuNt' ..... вариантов куча может быть
Igor
?
||
MVD
Вот ответ
Так я написал что кейсов больше может быть. Если слово из 5 букв то 2^5, мне все перечислять?
Anonymous
в ловеркейс религия не позволяет?)
Mikhail
в ловеркейс религия не позволяет?)
В объекте ключ неизвестный
Ilia
'COUNT' 'cOuNt' ..... вариантов куча может быть
не ты можешь все варианты так пройти, а можно функцию бахнуть) const key = Object.keys(tvoiObject).find(key => key.toLowerCase === 'count') const count = tvoiObject[key] 🙂
Anonymous
В объекте ключ неизвестный
`key.`https://www.w3schools.com/jsref/jsref_toLowerCase.asp
Kirill
Всем привет. Подскажите пожалуйста, нужен ли Preact после появления в React хуков и для достижения каких целей Preact может понадобиться?
artalar
Всем привет. Подскажите пожалуйста, нужен ли Preact после появления в React хуков и для достижения каких целей Preact может понадобиться?
В принципе преакт просто меньше реакта по бандлсайзу. По факту обычно преакт - это философия, которая подразумевает заботу о бандлсайзе в общем, выбирая каждую подключаемую библиотеку с этой мыслью в голове
Natalia
кто со сторибуком дружит
Natalia
у меня пропсы (knobs) меняются, первое изменение да -отображается
КириLL
🙃
Oleksii
Ого. Спасибо за ответ, теперь я точно сформировал точку зрения по преакту
В этой статье в основном будут говорит про виртуальный дом и не много затронут преакт https://medium.com/@abraztsov/how-virtual-dom-work-567128ed77e9
Kirill
Да, зашло, ну там в основном про VDom, но Preact описан неплохо
Konstantin
Посмотри на редьюсер свой. Ты перетираешь значение
И всё же не понимаю. Я скорее всего каких-то принципов Redux-а не понимаю. Я опишу по шагам так как это вижу я, и если можно, указать шаг на котором я ошибаюсь. * Вызываем хуки и идём в jsx-разметку внутрь хэндлера кнопки. * При нажатии кнопки происходит следующее: 1. dispatch1 отправляет событие на замену хранилища. Вмесе с событием прикладывает новый объект Map('immutable'). Данный новый объект Map получается из текущего состояния, посредством вызова set() для "key1" и нового значения, что создаёт новый объект Map, который и отправляется в редюсер, и после чего старый объект хранилища заменяется на этот новый объект. 2. Процедура повторяется с dispatch2 и ключом "key2". Вопрос - какое перетирание значения тут может быть когда работа ведётся с разными ключами? По идее в хранилище должны быть два ключа со своими значениями, а получается только один ключ...
Sergey
И всё же не понимаю. Я скорее всего каких-то принципов Redux-а не понимаю. Я опишу по шагам так как это вижу я, и если можно, указать шаг на котором я ошибаюсь. * Вызываем хуки и идём в jsx-разметку внутрь хэндлера кнопки. * При нажатии кнопки происходит следующее: 1. dispatch1 отправляет событие на замену хранилища. Вмесе с событием прикладывает новый объект Map('immutable'). Данный новый объект Map получается из текущего состояния, посредством вызова set() для "key1" и нового значения, что создаёт новый объект Map, который и отправляется в редюсер, и после чего старый объект хранилища заменяется на этот новый объект. 2. Процедура повторяется с dispatch2 и ключом "key2". Вопрос - какое перетирание значения тут может быть когда работа ведётся с разными ключами? По идее в хранилище должны быть два ключа со своими значениями, а получается только один ключ...
Так, ну смотри. dispatch1({ type: ActionType.REPLACE_STORE, payload: state.set("key1", state.get("key1") + ".") }); dispatch2({ type: ActionType.REPLACE_STORE, payload: state.set("key2", state.get("key2") + ".") }); Не работал с immutable, но подозреваю что на каждый set создаётся НОВЫЙ объект У тебя один общий стейт для обоих диспатчей. Допустим так: { key1: '', key2: ''} При первом диспатче в payload новый объект стейта. { key1: '.', key2: ''} При втором диспатче снова "изменяется" старый объект { key1: '', key2: '.'} Т.е. ты делаешь диспатчи с такими данными state -> state1 state -> state2 А не так state -> state1 -> state2 Т.к. это происходит сразу, то второй диспатч является актуальным. Можешь через Redux devTools глянуть, 100% увидишь проблему визуально (кмк)
Konstantin
Так, ну смотри. dispatch1({ type: ActionType.REPLACE_STORE, payload: state.set("key1", state.get("key1") + ".") }); dispatch2({ type: ActionType.REPLACE_STORE, payload: state.set("key2", state.get("key2") + ".") }); Не работал с immutable, но подозреваю что на каждый set создаётся НОВЫЙ объект У тебя один общий стейт для обоих диспатчей. Допустим так: { key1: '', key2: ''} При первом диспатче в payload новый объект стейта. { key1: '.', key2: ''} При втором диспатче снова "изменяется" старый объект { key1: '', key2: '.'} Т.е. ты делаешь диспатчи с такими данными state -> state1 state -> state2 А не так state -> state1 -> state2 Т.к. это происходит сразу, то второй диспатч является актуальным. Можешь через Redux devTools глянуть, 100% увидишь проблему визуально (кмк)
Да, по идее ты прав. Если я правильно понял, то моя переменная state ссылает на ИЗНАЧАЛЬНЫЙ объект стейта, и после его замены при первом диспатче, эта константа всё также ссылается на старый объект стейта. Ну и следовательно, после второго диспатча, в хранилище устанавливается новый объект но созданный от изначального. Я где-то читал что селектор выдаёт состояние, подписывается на его события и я думал что он как-то подшаманимает чтобы в момей константе был актуальный стейт😊 Видимо это не так. Спасибо.
Sergey
Да, по идее ты прав. Если я правильно понял, то моя переменная state ссылает на ИЗНАЧАЛЬНЫЙ объект стейта, и после его замены при первом диспатче, эта константа всё также ссылается на старый объект стейта. Ну и следовательно, после второго диспатча, в хранилище устанавливается новый объект но созданный от изначального. Я где-то читал что селектор выдаёт состояние, подписывается на его события и я думал что он как-то подшаманимает чтобы в момей константе был актуальный стейт😊 Видимо это не так. Спасибо.
> Я где-то читал что селектор выдаёт состояние, подписывается на его события и я думал что он как-то подшаманимает чтобы в момей константе был актуальный стейт😊 Даже если это и так, то тебя ссылка остаётся старая. Тут никакой магией это не подшаманить, т.к. имутабельное состояние. Да и выполняются диспатчи синхронно.
Anya
привет. подскажите какие-нибудь решения с цветовыми схемами, postcss.... у меня есть данные с уникальными id. каждому id соответсвует некая цветовая схема. background-color, color, цвет svg в некоторых иконках меняется в зависимости от id. самый простой вариант просто иметь некий мапинг по id, брать и прокидывать в компоненты color, background-color и т.д. и инлайново устанавливать или в контексте хранить и также инлайново устанавливать. но мне не нравится такой вариант. компонентов около 10 штук. в целом у меня 20 id, 20 уникальных схем (разный background-color, color, svg)
Alex
Ну добавляй классы если не хочешь инлайново. Class__name_1 например. Цифру заменяй на index элемента и все
倫太郎
@Atassis
Anya
Ну добавляй классы если не хочешь инлайново. Class__name_1 например. Цифру заменяй на index элемента и все
ну у меня разные компоненты зависят от этого id. я буду в css прописывать 20 штук вариантов к каждому id? 20 штук бэкграундов к одному компоненту, 20 штук color к другому и т.д. нужна темизация какая-то
Oleksii
пишу чат, не могу понять, что может быть не так. Новое состояние не пушиться
Zaff
пишу чат, не могу понять, что может быть не так. Новое состояние не пушиться
setState не так используется state в реакте не мутабельный
Nikolai
пишу чат, не могу понять, что может быть не так. Новое состояние не пушиться
setState это функция, в неё нужно передать новый стейт, а не мутировать старый
Daniil
пишу чат, не могу понять, что может быть не так. Новое состояние не пушиться
Где вообще ты взял такой пример обновления? Ведь в доке даже такого нет
Daniil
🤔
Sergey
Oleksii
Сам в шоке)
Андрей
с ютюбчика)
Есть Линк на видео это?
Anonymous
Подскажите плиз, через on change react-select открываю модалку на react-modal, при закрытии модалки не кликается на селект снова, нужно на любой другой элемент сначала кликнуть чтобы клик на селект заработал
Александр
пишу чат, не могу понять, что может быть не так. Новое состояние не пушиться
Документацию не смотрели на setState? Делюсь советом, у меня работает по крайней мере в подавляющем большинстве случаев: для начала открывает документацию на библиотеку и смотрим как правильно использовать тот или иной метод ( https://ru.reactjs.org/docs/react-component.html#setstate). Если чтение документации не решает вопрос, то идём в Гугл, если Гугл не сталкивался с такой проблемой, то наступает время заглянуть в исходный код и понять что идёт не так. Если же и это не помогло, то задаём вопрос в чате реакта. У меня на практике все вопросы решались максимум на этапе обращения к исходникам, допускаю что в особо сложных случаях можно прибегнуть к помощи чата, но лично я пока не сталкивался с такими.
Александр
Зачем думать, если можно сразу спросить? :-)
Ну, например, чтобы не тыкали тебя в документацию носом, да и быстрее же посмотреть в доке
Vadim
с ютюбчика)
Ну че там, где ссыль?
Aidyno
Ну че там, где ссыль?
Где то нае*бал он)))