Bogdan
Bogdan
https://codesandbox.io/s/tender-architecture-cdl16
вот тут можно пожмакать, работает все, но меня смущает написание страницы FormSteps
Andrew
ребят
Andrew
есть тут кто не спящий?
MVD
Andrew
В общем, такая проблема ( возможно нубская )
Andrew
у меня есть 1 компонент, собсно опросник. И внутри есть есть Stepper ( прогресс бар с кнопкой далее )
Andrew
И вот, когда юзер доходит до последнего вопроса, кнопка далле должна стать кнопкой готово
Andrew
и всё бы хорошо, но!
Andrew
Эту проверку мне нужно делать в componentDidUpdate или render или подобном хуке
Andrew
но если я меняю там стейт
Andrew
это запускает бесконечный цикл ререндера
Andrew
есть какой-то типичный солюшн для этого ( когда нужно менять стейт на каждом шаге ререндера одного и того же компонента )
Andrew
P.S. forceUpdate не помог
MVD
а что ты в стейте хранишь?
MVD
а лучше кодл компонента покажи
Andrew
MVD
О господи
MVD
Теперь мне будут кошмары сниться
MVD
Во первых стейт меняется с помощью setState
Andrew
MVD
почитай вопрос, пожалуйста
У тебя переменная this.isLastStep не меняется. Конечно вечный цикл будет. Но никто не пишет код так как ты
Andrew
Andrew
и на послденем шаге она меняеться
Andrew
и вот
Andrew
начинаеться пиздец
Andrew
Andrew
ебать я дебил
Andrew
ахахах, чёто даже не подумал об этом
Andrew
серьезно
Andrew
без сарказма, рил спасибо!)
Andrew
Andrew
и вот условия на рендер разных елементов, да. Тут я тупонул жестко
Ruslan
Ruslan
Ребят,подскажите почему?:/
🅅aleriy
что за название для редьюсера removeBook? :)
Ruslan
🅅aleriy
Тестовое) лучше помогите🙃
так а чем помочь если у тебя нет даже малейшего понимания что такое стейт приложения, редакс и вообще
Vladimir
Помогите с cross-env, нужно чтобы при билде менялась переменая в app.js
🅅aleriy
Vladimir
и при чем тут реакт канал?
cross-env вшит в "react-create-app", поэтому и спрашиваю, может кто разбирался с ним
Unknown
Посоветуйте простенькую библиотеку для Реакт ui
Nikita
Semantic UI
Volodymyr
Anonymous
cross-env вшит в "react-create-app", поэтому и спрашиваю, может кто разбирался с ним
https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables вот здесь вроде бы все достаточно понятно описано. Если вам нужно разное значение переменной в зависимости от среды, то в коде можно так написать:
const variable = process.env.NODE_ENV === 'production' ? 'prod_value' : 'dev_value';
Но по хорошему такие переменные должны быть в конфигах и в зависимости от среды вы должны подгружать один или другой конфиг, возможно еще мержить его с каким-то общим, зависит от проекта.
Vladimir
Всем спасибо, разобрался немного, оказалось не получиться сделать то-что я захотел так-как импорт модуля нельзя взять из переменой.
🅅aleriy
🅅aleriy
лучше просто скажи что хотел, может есть другое решение проще
Vladimir
Разные модули в зависимости от prod или dev среды
🅅aleriy
ну это по другому решается
🅅aleriy
а вообще можно и с переменной
artalar
Подкиньте интересный пример на редаксе с хуками
MVD
Tray
Ку. Подскажите пожалуйста... Сейчас почитал про редакс. Везде пишут, что в редакс не нужно делать всяких сайд эффектов (на вроде http-запросов). Ок, тогда где их делать? Основной statefull компонент и так достаточно большой получился. А если туда ещё и логику запросов накидать, то вообще слишком много получится.
🤴👷♂️🦸♂️🧚♀️
Tray
🤴👷♂️🦸♂️🧚♀️
Tray
Спасибо
🤴👷♂️🦸♂️🧚♀️
Можешь брать ещё саги, аполо, релэй, что угодно. Если правильно понял
artalar
artalar
Там все ОЧЕНЬ подробно описано. В нее вложено масса сил
Sergei
Андрей
Что то не понял, я вот про редакс.
Есть стор
const initialState = {
isStartQuiz: false
};
И действие const startQuiz = () => ({type: 'START_QUIZ'});
В редьюсере я возвращаю объект который надо заменить в сторе.
return {...state, isStartQuiz: !state.isStartQuiz};
А где писать логику дополнительную, к примеру что мне надо на body повесить класс .start-quiz ?
Sergei
Андрей
В компоненте где вызываешь экшен
На кнопку вешаю слушатель на клик onClick={() => startQuiz()}
туда же записать обработчик этого клика? Например так
onClick={() => startQuiz() this.handleClick() } ?
Sergei
Андрей
Ну я через коннект передал в пропсы эту функцию
const startQuiz = () => ({type: 'START_QUIZ'});
А как помимо тайпа сделать еще что то ?
Sergei
Андрей
Андрей
Вот такой темплейт, я не пойму куда писать доп логику
Dimitri
middleware