Size: a a a

2020 February 25

O

Oleks 🐟 in React Kyiv
Андрей
Привет, есть компонент, передаю туда данные и onChange. Нужно когда смонтирован компонент вернуть данные, а именно первый элемент data
пытюась сделать через useEffect onChange(data[0]) не работает (
Как еще можно или как правильно?
покажи код
источник

IN

Ira Novikova in React Kyiv
Андрей
Привет, есть компонент, передаю туда данные и onChange. Нужно когда смонтирован компонент вернуть данные, а именно первый элемент data
пытюась сделать через useEffect onChange(data[0]) не работает (
Как еще можно или как правильно?
Код компонента где ты юз эффект юзаешь
источник

А

Андрей in React Kyiv
да, я понял, сейчас
источник

А

Андрей in React Kyiv
источник

А

Андрей in React Kyiv
useEffect(
   () => {
     if(firstValue === true) {
       onChange(defaultItem);
     }
   },
   [defaultItem],
 );


вот так пытался, но бесконечный рендеринг
источник

А

Андрей in React Kyiv
@ira_agent_provocateur @oleksv есть идеи?
источник

D

Dmytro in React Kyiv
там нужно и onChange и firstValue в массив зависимостей передать
источник

IN

Ira Novikova in React Kyiv
Андрей
useEffect(
   () => {
     if(firstValue === true) {
       onChange(defaultItem);
     }
   },
   [defaultItem],
 );


вот так пытался, но бесконечный рендеринг
если надо чтобы один раз вызвалось то мне кажется надо пустой масив в юзэфекте
useEffect(
   () => {
     if(firstValue === true) {
       onChange(defaultItem);
     }
   },
   [],
 );
источник

А

Андрей in React Kyiv
надо так, что когда есть уже firstValue, то в onChange вернуть значение
источник

MK

Max Kharena in React Kyiv
да и если смотреть в код то пропса firstValue и нету
источник

MK

Max Kharena in React Kyiv
есть isFirstValue
источник

IN

Ira Novikova in React Kyiv
Андрей
надо так, что когда есть уже firstValue, то в onChange вернуть значение
попробуй как Дмитрий предложил сделать
источник

IN

Ira Novikova in React Kyiv
useEffect(
   () => {
     if(firstValue === true) {
       onChange(defaultItem);
     }
   },
   [firstValue, onChange, defaultItem],
 );
источник

А

Андрей in React Kyiv
Max Kharena
есть isFirstValue
верно и исхоодя из этого, строится потом defaultItem
когда isFirstValue   true то нужно вернуть в onChange иначе ничего
источник

А

Андрей in React Kyiv
Ira Novikova
useEffect(
   () => {
     if(firstValue === true) {
       onChange(defaultItem);
     }
   },
   [firstValue, onChange, defaultItem],
 );
бесконечно
источник

MK

Max Kharena in React Kyiv
useEffect(
   () => {
     if (isFirstValue) onChange(defaultItem);
   },
   [],
 );
источник

IN

Ira Novikova in React Kyiv
тогда я бы дополнила условие if(firstValue === true) { чемто что позволит в него не заходить даже при тригере юз эфекта
источник

А

Андрей in React Kyiv
Max Kharena
useEffect(
   () => {
     if (isFirstValue) onChange(defaultItem);
   },
   [],
 );
отрабатывает 1 раз и в этот раз defaultItem пустое значение
источник

IN

Ira Novikova in React Kyiv
Андрей
отрабатывает 1 раз и в этот раз defaultItem пустое значение
если заходит в условие if (isFirstValue), то  
const defaultItem = isFirstValue
   ? get(dropdDownSyntax, "[0]", "")
   : dropdDownSyntax.find(i => i.value === defaultValueField);

что-то неправильно отрабатывает
ты выводил чему равно defaultItem просто в компоненте?
источник

А

Андрей in React Kyiv
useEffect(
   () => {
     if(isFirstValue) {
       console.log(defaultItem);
     }
   }, [defaultItem]
 );
источник