2016-10-19 91 views
1

我在場景A上有一個ListView組件,它最初沒有任何東西;這是與商店相關的最近搜索條件列表。如何在使用react-native-router-flux的場景轉換期間防止當前場景呈現?

當用戶輸入一個搜索詞並在場景A上單擊提交時,最近的搜索詞條存儲被更新,然後我們立即過渡到場景B.我從ListView中得到我認爲是「空白頁眉」的警告場景A在場景過渡時開始渲染引起。

我試圖用在場景A組件上使用shouldComponentUpdate(),但它似乎不會觸發?!我希望查看當前位置和新位置,如果它們不同,則返回false以防止更新/呈現。

任何人都有這個建議嗎?

設置enableEmptySections = {true}可以阻止關於空節標題的警告消息,但這看起來像繃帶而不是永久的解決方案。

回答

2

你是否將一個空的數組傳遞給初始渲染的ListView,然後是一旦你有它的數據數組?

如果是這樣,它只是一個警告,你正在呈現一個ListView與空白部分,在這種情況下,可能是唯一的部分。你可以通過

enableEmptySections={true} 

或者你可以做一個簡單的檢查,看看是否有數據的ListView,如果不是返回null。當數據來自通過視圖將使用ListView

重新渲染渲染功能

if (!this.state.myVar) return null 

return <MyListView myData={this.state.myVar} />