передать компонент функции со статическим свойством в функцию высокого порядка, а возвращенный компонент потерял статическое свойство - PullRequest
0 голосов
/ 14 мая 2019

Я передал компонент функции в компонент высшего порядка, компонент функции имеет некоторое статическое свойство в качестве примера!Как я могу получить статическое свойство из возвращенного компонента!


function TestHighOrderCp<T>(
  Cp: React.ComponentType<T>
): (
  props: T & {
    name: string
  }
) => JSX.Element {
  const rs = (props: T & { name: string }) => {
    const name = 'testName'
    return <Cp name={name} {...props} />
  }
  return rs
}

const A1 = function A1(props: { e: string }) {
  return <div>{props.e}</div>
}
A1.defaultProps = {
  e: 12
}
A1.name = '12'

const A11 = TestHighOrderCp<A1>
// A11.Name = {} // get Error here


1 Ответ

0 голосов
/ 14 мая 2019

Вам необходимо вручную скопировать статические свойства, поскольку они не копируются даже при распространении реквизита, {...props}.

Или вы можете использовать вспомогательную библиотеку, hoist-non-реакции-statics , чтобы автоматически скопировать все статические свойства в обертывающий компонент.

Ознакомьтесь с этой документацией React, Статические методы должны быть скопированы поверх для получения дополнительной информации.

...