2017-03-02 210 views
0

目前,我有一個數字,從地圖渲染,像這樣同一組件的:陣營TransitionGroup兒童基於狀態

{this.state.Tweets.map(t => <Tweet key={t.title} title={t.title} desc={t.desc} />)} 

所以我做了什麼是包裹整個地圖對象與過渡爲這樣:

<TransitionGroup> {this.state.Tweets.map(t => <Tweet key={t.title} title={t.title} desc={t.desc} />)} </TransitionGroup>

this.state.tweets更新爲執行以下操作:

filterTweets() { 
    const t = this.state.tweets; 
    const filteredTweets = _.filter(t, tweet => tweet.time.end > this.state.time); 
    this.setState({ tweets: filteredTweets }); 
} 

但是,當this.state.Tweets因任何原因而更新時,<TransitionGroup>內的項目數量不會更新。我可以獲取componentWillEnter生命週期鉤子,但我無法獲取任何其他更新。有任何想法嗎?

我試過將this.state.Tweets作爲道具添加到<TransitionGroup>,但這似乎並不奏效。

+0

你要如何改變this.state.Tweets? – Turnipdabeets

+0

@Turnipdabeets我已更新我的帖子,包括我如何更新this.state.Tweets – ajames

+0

你不想'this.setState({tweets:filteredTweets});'而不是'this.setState({tweets:過濾});'? – Turnipdabeets

回答

0

其實我錯過了TransitionGroup的至關重要的作用:

請注意,您必須在動畫結束後調用提供的回調,否則你的組件將進入,但不會離開,或離開,但無法進入。