Size: a a a

2020 March 26

AR

Alexey Raspopov in React Kyiv
возможно у второго компонента есть какой-то shouldComponentUpdate
источник

AR

Alexey Raspopov in React Kyiv
в каком виде эти данные отправляются?
источник

К

Камран in React Kyiv
Я из редакса в главном компоненте достаю  initialValues, то есть в пропсы главного попадает обьект с данными и массивами.

А потом я хочу засетить их в хук, чтобы дальше прокинуть по компонентам
    const [values, setValues] = useState({})

   useEffect(() => {
       setValues({...initialValues})
   }, [])
источник

AR

Alexey Raspopov in React Kyiv
Камран
Я из редакса в главном компоненте достаю  initialValues, то есть в пропсы главного попадает обьект с данными и массивами.

А потом я хочу засетить их в хук, чтобы дальше прокинуть по компонентам
    const [values, setValues] = useState({})

   useEffect(() => {
       setValues({...initialValues})
   }, [])
эффект здесь отработает всего один раз при самом первом рендере компонента
источник

К

Камран in React Kyiv
<LoyaltyCardDetails initialValues={values}/>
<LoyaltyCardEdit initialValues={values} />

И вот так отпраляю..В один приходит, а во второй нет, ошибка не может отмапить массив который есть в пропсах
источник

AR

Alexey Raspopov in React Kyiv
не забывай что оно первый раз отрендерит с {} в values
источник

К

Камран in React Kyiv
Alexey Raspopov
не забывай что оно первый раз отрендерит с {} в values
То есть мне лучше сразу в хуке сказать чтобы он брал данные из initialValues?
источник

AR

Alexey Raspopov in React Kyiv
и есди ты в этих компонентах делаешь что-то типа values.array.map — тут будет ошибка
источник

К

Камран in React Kyiv
ввоот, именно так и есть сейчас
источник

К

Камран in React Kyiv
Есть ещё другой прикол, когда ставлю дебаггеры в эти компоненты, то всё отрабатывает)
источник

AR

Alexey Raspopov in React Kyiv
не советую дебажить реакт компоненты через брейкпоинты
источник

К

Камран in React Kyiv
Alexey Raspopov
не забывай что оно первый раз отрендерит с {} в values
В целом, закинул данные сразу при обьявлении хука и всё норм
источник

AR

Alexey Raspopov in React Kyiv
рендеринг — асинхронный процесс
источник

К

Камран in React Kyiv
Alexey Raspopov
рендеринг — асинхронный процесс
Спасибо
источник

AR

Alexey Raspopov in React Kyiv
Камран
Я из редакса в главном компоненте достаю  initialValues, то есть в пропсы главного попадает обьект с данными и массивами.

А потом я хочу засетить их в хук, чтобы дальше прокинуть по компонентам
    const [values, setValues] = useState({})

   useEffect(() => {
       setValues({...initialValues})
   }, [])
советую вот это прочитать ещё
https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
источник

К

Камран in React Kyiv
А подскажите ещё, пожалуйста
Если мой обьект значений хранится в хуке,допустим.
И я хук передаю ниже в компоненты дочерние.
А дальше, я в родительском меняю какие-то данные в обьекте, то дочерние должны перерисоваться ведь, верно?
источник

AR

Alexey Raspopov in React Kyiv
если делать как было показано в коде выше, то обновление родительских данных не повлияет на дочерние элементы. именно поэтому я залинковал статью)
источник

К

Камран in React Kyiv
ага, понял)
Тогда пошёл к статье. Если что, вернусь))
источник

К

Камран in React Kyiv
Почитал, все равно мне немного не ясно..
Если не сложно, объясните пожалуйста на моём примере

Мой пример, это когда есть форма, инпуты которого должны заполниться по дефолту из обьекта который приходит с сервера, но дальше, мне нужно как-то дать возможность менять значения в этих инпутах, поэтому я скопировал всё в хук и уже меняю значения в нём.
Но они почему-то не все реагируют на изменения. Например чекбоксы
источник

К

Камран in React Kyiv
А на форму <form onChange={handler}/> Можно уже вешать такое событие?

На всю форму?

Я где-то читал на гитхабе что такую поддержку включили. И в целом она у меня работает.
источник