Получение дочерних элементов FixedSizeList в реагирующем окне - PullRequest
0 голосов
/ 18 марта 2020

Я использую библиотеку реагирующее окно и буду очень признателен за некоторые указатели с инъекцией реквизита для детей <FixedSizeList />.

У меня есть компонент, который получает <FixedSizeList /> ребенок и оказывает его. Что мне нужно сделать, так это добавить несколько реквизитов в элементы списка, которые содержит сам <FixedSizeList />. У меня нет хороших идей о том, как этого добиться, поэтому любые идеи приветствуются.

Мой код выглядит примерно так:

class SelectListBody extends React.Component {

  render() {
    const childrenArray = React.Children.toArray(this.props.children)
    const newChildren = childrenArray.map((child, i) => {
      if (child.type === FixedSizeList) {
        // This below returns 0, 
        // even if the actual code works and rendering is as expected
        console.log(React.Children.count(child.props.children))
        // here we would inject additional props to the captured child(ren) of the FixedSizeList
      }
      return child
    })
    return <div>{newChildren}</div>
  }
}

export default SelectListBody

Поэтому моя главная проблема заключается в том, что React.Children.count(child.props.children) всегда 0, даже если реальный код работает и хорошо отрисовывается. Я смотрю не на то место? Я смотрю не так?

Компонент <FixedSizeList /> используется примерно так:

<FixedSizeList>
   {ListItem}
</FixedSizeList>

А затем <ListItem /> визуализирует компонент SelectItem/>, который в конечном итоге моя цель для инъекций. Но я даже не могу добраться до <ListItem />, который находится на один уровень выше.

...