Я пытаюсь реализовать окно реакции, но не знаю, как передать компонент, который принимает свои собственные свойства.
Если у меня есть что-то вроде этого
{
items.map(
(item, index) => {
<MyComponent
key = {key}
item = {item}
/>;
}
);
}
как сделать список переменных?
В примере не показано, как это сделать
import { VariableSizeList as List } from 'react-window';
// These row heights are arbitrary.
// Yours should be based on the content of the row.
const rowHeights = new Array(1000)
.fill(true)
.map(() => 25 + Math.round(Math.random() * 50));
const getItemSize = index => rowHeights[index];
const Row = ({ index, style }) => (
<div style = {style}>Row {index}</div>
);
const Example = () => (
<List
height = {150}
itemCount = {1000}
itemSize = {getItemSize}
width = {300}
>
{Row}
</List>
);





Пример действительно сбивает с толку. Этот пример показывает, как вы можете использовать react-window с массивом данных вместо генеративного примера, который показывает домашняя страница:
class ComponentThatRendersAListOfItems extends PureComponent {
render() {
// Pass items array to the item renderer component as itemData:
return (
<FixedSizeList
itemData = {this.props.itemsArray}
{...otherListProps}
>
{ItemRenderer}
</FixedSizeList>
);
}
}
// The item renderer is declared outside of the list-rendering component.
// So it has no way to directly access the items array.
class ItemRenderer extends PureComponent {
render() {
// Access the items array using the "data" prop:
const item = this.props.data[this.props.index];
return (
<div style = {this.props.style}>
{item.name}
</div>
);
}
}
Хотя itemsArray не представлен в примере кода, якобы вы должны включить в него реквизиты, которые необходимо передать ItemRenderer, например name, как показано здесь. Это приведет к тому, что ваше использование будет выглядеть примерно так:
<ComponentThatRendersAListOfItems
itemsArray = {[{ name: "Test 1" }, { name: "Test 2" }]}
/>
Спасибо за это! из документов не сразу ясно, как а) передать массив ваших собственных данных и б) как ссылаться на эти данные в визуализируемом компоненте (на который ссылаются через опору «данные»!).
хорошо, я попробую это. Это кажется более разумным. Что касается другого вопроса, я хочу, чтобы между каждым элементом в этом списке был пробел. Я пытался сделать margin: 20px, но, похоже, между записями нет пробелов.