FlatList은 numColumns
입니다. 을 SectionList으로 설정하는 방법은 무엇입니까?React Native - SectionList numColumns support
Github의 문제 : SectionList renderItem multi item support #13192
FlatList은 numColumns
입니다. 을 SectionList으로 설정하는 방법은 무엇입니까?React Native - SectionList numColumns support
Github의 문제 : SectionList renderItem multi item support #13192
여기 SectionList에 대한 numColumns
내 솔루션입니다. 네가 더 잘 알고 있다면 알려줘.
class Example extends Component {
static propTypes = {
numColumns: PropTypes.number
};
static defaultProps = {
numColumns: 2
};
_renderSection = data => <Section {...data} />;
_renderItem = ({ section, index }) => {
const { numColumns } = this.props;
if (index % numColumns !== 0) return null;
const items = [];
for (let i = index; i < index + numColumns; i++) {
if (i >= section.data.length) {
break;
}
items.push(<Item item={section.data[i]} />);
}
return (
<View
style={{
flexDirection: "row",
justifyContent: "space-between"
}}
>
{items}
</View>
);
};
render() {
return (
<SectionList
sections={dumyData}
style={styles.container}
renderItem={this._renderItem}
renderSectionHeader={this._renderSection}
/>
);
}
}
SectionList의 renderItem으로 numColumns prop가있는 FlatList를 사용할 수 있습니다.
const data = [ //Notice [[...]] instead of [...] as in the RN docs
{data: [[...]], title: ...},
{data: [[...]], title: ...},
{data: [[...]], title: ...},
]
render() {
return (
<SectionList
renderItem={this._renderSectionListItem}
renderSectionHeader={this._renderSectionHeader}
sections={data}
/>
)
}
renderSectionListItem = ({item}) => {
return (
<FlatList
data={item}
numColumns={3}
renderItem={this.renderItem}
/>
)
}
예, 가능하지만 3 항목 만 'FlastList'가 필요한 이유는 무엇입니까? –
@PirShukarullahShah 내가 게시 한 코드는 FlatList를 사용하여 각 목록에있는 항목의 수와 함께 3 열 (3 개 항목이 아님)을 표시하는 예입니다. 자신의 numColum, 자신의 항목 수, 섹션 수를 선택하십시오. 내가 아는 한 제한이 없지만 성능을 향상 시키려면 removeClippedSubviews를 사용하십시오. –
FlatList의 일부 (아마 100 개) 항목에서 성능이 매우 떨어지기 때문에 실제로는 권장하지 않습니다. –
Github 문제를 보면이 문제가 이미 해결되어 해결되었으므로 여기에 게시하는 이유는 무엇입니까? – ShaneG
나는이 문제가 적절하게 해결되지 않았다고 믿는다. –