當前我正在使用<ScrollView />
組件處理我的項目的滾動,因爲我將只有最多三個項目,我覺得這是適當的,而不是引入了<FlatList />
。此組件接收名爲collapsed
和onCollapseToggle
的道具,該道具用於修改傳遞給兒童的塌縮道具。我也試驗過這個孩子,它的狀態是collapsed
變量,但是似乎從父母那裏修改孩子的狀態幾乎是不可能的。對反應本地滾動屏幕上的組件滾動的反應
當通過當組件通過了<ScrollView />
滾動(用戶向下滾動足夠遠,該組件不再顯示在屏幕上)我想執行的是可能改變則傳遞給該collapsed
值的函數項目正在呈現。這樣,如果用戶展開一個項目以查看關於它的更多信息,然後繼續向下滾動該項目,則該項目將自動摺疊,而用戶沒有通過某種形式的輸入手動關閉該項目。
我目前還不確定任何有關此方面的信息,任何幫助都將不勝感激。我將提供我正在使用的結構示例,這可能有助於某人提出解決方案。我不介意重組我的組件。
class ContentInformation extends React.Component {
state = { content: [ ... ] };
onCollapseToggle = (index, displayed=true) => {
const { content } = this.state;
const arr = content.slice();
const item = arr[index];
if(!item) return;
if(!displayed) {
if(!item.collapsed) {
item.collapsed = true;
}
} else {
item.collapsed = !item.collapsed;
}
arr[index] = item;
this.setState({ content: arr });
}
render() {
return (
<ScrollView>
{ this.state.content.map((content, index) => (
<Item
key={content._id}
index={index}
onCollapseToggle={this.onCollapseToggle}
{...content} />
); }
</ScrollView>
);
}
}
因此,基本上,你可以看到,我只需要弄清楚當<Item />
熄滅屏幕,所以我可以打電話onCollapseToggle(index, false)
自動重新摺疊部分,如果它是開放的。
得到這個問題對你來說有點難。你是否試圖讓物品在脫離屏幕時崩潰?無論哪種方式,請添加一個類似的句子,以便用更少的詞彙來解釋問題,所以我們很清楚 –