как можно поставить ссылку на props.children - PullRequest
0 голосов
/ 14 января 2020

Я хочу оберточный модуль для многократного использования.

поэтому я создаю ItemComponent

export const DragItem = (props: DragProps) => {
  const [{... }, fooRef] = useFoo({

  })

  return (
    props.children // how can i send fooRef to here??
  )
}

Я должен отправить ссылку на props.children Возможно ли это?

Ответы [ 2 ]

1 голос
/ 14 января 2020

отметьте это: https://codesandbox.io/s/gracious-williams-ywv9m Вам необходимо использовать React.cloneElement, чтобы прикрепить / передать дополнительные данные детям

export const DragItem = (props: DragProps) => {
  const [foo, fooRef] = React.useState({});
  var childrenWithRef = React.Children.map(props.children, function(child) {
    return React.cloneElement(child, { fooRef: fooRef });
  });
  return childrenWithRef;
};
0 голосов
/ 14 января 2020

Я понял.

export const DragItem = (props: DragProps) => {
  const [{... }, fooRef] = useFoo({

  })

  return (
    React.cloneElement(props.children, { ref: fooRef })
  )
}
...