Передача Props с оператором распространения при использовании деструктуризации - PullRequest
0 голосов
/ 16 июня 2020

У меня есть дочерний компонент C, который я хочу передать со всеми реквизитами с помощью оператора распространения в родительский компонент A через дочерний компонент B. Как мне этого добиться при использовании техники деструкции?

const C = ({onClick}) => (
  <El onClick={onClick} />
)

// What do I need to pass through here?
// I tried ({someProps, ...props}) or ({someProps}, props) and multiple other variants but none worked
const B = ({someProps}) => (
  <>
    <OtherComponent someProps={someProps} />
    <C {...props} />
  </>
)

const A = () => {
  const handleOnClick = () => {
    setSomeState(!someState)
  }
  return (
    <>
     <B onClick={handleOnClick} />
    </>
  )
}

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Попробуйте следующее:

const B = ({ someProps, ...rest }) => (
  <>
    <OtherComponent someProps={someProps} />
    <C {...{ ...rest, someProps }} />
  </>
);
0 голосов
/ 16 июня 2020

Хорошо, просто оставьте это здесь, если кто-то еще столкнется с той же проблемой.

Это действительно просто использование ({someProps, ...props}) внутри вашего среднего компонента. Клянусь, я пробовал это несколько раз, но это сработало только после того, как спросили здесь.

...