Size: a a a

React — русскоговорящее сообщество

2020 December 17

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Тимофей 🛴
Мне кажется ты перемудрил, и вместо войны с mobx лучше порефакторить
Я не с mobx борюсь :) Изменения в mobx observable ловятся реактом замечательно
Но когда я эти изменения заношу в переменную investorFilters, то появляется большая вложенность, реакт на нее смотрит и не понимает что изменения в этой вложенности появились
В итоге он не делает ререндер
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Dmytro Svyrydenko
Я не с mobx борюсь :) Изменения в mobx observable ловятся реактом замечательно
Но когда я эти изменения заношу в переменную investorFilters, то появляется большая вложенность, реакт на нее смотрит и не понимает что изменения в этой вложенности появились
В итоге он не делает ререндер
Это и есть борьба с mobx

Я бы сделал рефакторинг и убрал бы такую вложенность, и половину вынес бы в компьютед
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
У меня структура аля mobx observable map => observable object (class). Из мэпы я достаю observable object и записываю в массив объектов. И реакт рендерит уже массив объектов. Но изменений в объектах он не видит
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Окей, попробую порефакторить -_-
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
Всем привет, есть вопрос. Разрабатываю приложуху. У меня на странице есть кнопка добавить форму, по нажатию на которую собсветнно добавляется форма, сама форма - отдельный компонет, у нее есть поля. Таких форм может быть много. И у меня проблема в том, что я не знаю как прокидывать стейт полей каждой формы в родительский компонент
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
А в родительском компоненте находится стейт всех форм const [forms, setForms] = useState([])
источник

B

Baxtiyor in React — русскоговорящее сообщество
Владимир Пенчев
А в родительском компоненте находится стейт всех форм const [forms, setForms] = useState([])
на сколько я понял при каждом клике вы хотите добавить в состоянию объект
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
Да
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
Я так понимаю, что я должен просто добавлять пустой объет
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
а потом маппить массив этих объектов и рендерить формы
источник

B

Baxtiyor in React — русскоговорящее сообщество
setForms(prevState => [
  ...prevState,
{новый объект}
])
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
вот на этом этапе у меня проблема
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
в этот объект мне нужно вносить какие-то поля?
источник

B

Baxtiyor in React — русскоговорящее сообщество
Владимир Пенчев
в этот объект мне нужно вносить какие-то поля?
да
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
Просто все поля по дефолту пустые, и непосредственно в форме заданы стейты для них
источник

RS

Roman Still in React — русскоговорящее сообщество
Такую логику лучше в редьюсер выносить
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
типо так const [name, setName] = useState('')
источник

B

Baxtiyor in React — русскоговорящее сообщество
Владимир Пенчев
Просто все поля по дефолту пустые, и непосредственно в форме заданы стейты для них
при клике добавьте в массив объект или что то
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
Roman Still
Такую логику лучше в редьюсер выносить
Была такая мысль, но я немного не понимаю какой смысл данные по формам хранить в редакс?
источник

ВП

Владимир Пенчев... in React — русскоговорящее сообщество
Если они потом пустые будут становиться, а те данные что были куда-то отправятся
источник