Size: a a a

JS Liberty [ОЫ]

2020 June 11

В

Виктория in JS Liberty [ОЫ]
Это костыль
источник

DE

Denis Efremov in JS Liberty [ОЫ]
Foma
подобное лечится подобным
Новосибирск наобный
источник

F

Foma in JS Liberty [ОЫ]
Виктория
Индекс не через объект события вытаскивается
так давай подумаем иначе искодя из той логики
источник

F

Foma in JS Liberty [ОЫ]
Oleksii Musiienko
может обертка Лист была лишней
предлогаешь переписать все?
источник

DE

Denis Efremov in JS Liberty [ОЫ]
Foma
предлогаешь переписать все?
А ты предлагаешь недописать?
источник

F

Foma in JS Liberty [ОЫ]
да
источник

DE

Denis Efremov in JS Liberty [ОЫ]
)))
источник

DE

Denis Efremov in JS Liberty [ОЫ]
источник

OM

Oleksii Musiienko in JS Liberty [ОЫ]
я думаю родитель может быть, это не имеет значения
источник

OM

Oleksii Musiienko in JS Liberty [ОЫ]
а вот вытащить инфу из ребенка в родителя как
источник

F

Foma in JS Liberty [ОЫ]
тебе нужно в родителе инфа ребенка?
источник

OM

Oleksii Musiienko in JS Liberty [ОЫ]
Foma
тебе нужно в родителе инфа ребенка?
да
источник

F

Foma in JS Liberty [ОЫ]
// Parent
const info = (data) => console.log(data)

users.map(user=><Child user={user} info={info} />)


//Child ({user, info})

onClick=e=>info({user, myInfo:{name:'some name'}})
источник

F

Foma in JS Liberty [ОЫ]
источник

OM

Oleksii Musiienko in JS Liberty [ОЫ]
Foma
// Parent
const info = (data) => console.log(data)

users.map(user=><Child user={user} info={info} />)


//Child ({user, info})

onClick=e=>info({user, myInfo:{name:'some name'}})
и где родитель?
источник

F

Foma in JS Liberty [ОЫ]
Oleksii Musiienko
и где родитель?
добавил коментарий
источник

F

Foma in JS Liberty [ОЫ]
@react_or печатала печатала и забила?
источник

В

Виктория in JS Liberty [ОЫ]
Oleksii Musiienko
а вот вытащить инфу из ребенка в родителя как
export default function List({ children }) {
   const handlerClick = useCallback((data) => {
       console.log("LIST ITEM DATA:");
       console.log(data);
   }, []);

   return (
       <ul>
           {
               React.Children.map(children, (child, index, id) => {
                   return React.cloneElement((child), {
                       index,
                       onClick: handlerClick
                   });
               })
           }
       </ul>
   );
}


Делаешь отдельный компонент для пункта списка - User

function User({ id, login, onClick }) {
   const data = {
       id,
       login
   };

   const handlerClick = useCallback(() => {
       onClick(data);
   }, [onClick, data]);

   return (
       <li onClick={handlerClick}>{login}</li>
   );
}


Рендер списка

<List>
   {
       users.map((user) => (
           <User key={user.id} { ...user } />
       ))
   }
</List>
источник

F

Foma in JS Liberty [ОЫ]
@react_or ты написала код с useCallback?
источник

В

Виктория in JS Liberty [ОЫ]
Foma
@react_or ты написала код с useCallback?
Ну дак у него же хуки, хуле
источник