2016-10-14 16 views
0

React組件有它們的生命週期(componentWillMount,componentDidMount等),也有它自己的生命週期(作爲中間件運行)。同步縮略語和反應生命週期

有沒有辦法同步這兩個生命週期?

我認爲這可能是問題的時候,我們願與授權保護某些組件(對多級訪問)

+0

作爲一般規則,組件不應該是「安全的」:無論如何它們都在客戶端上。唯一真正安全的就是你的API(你的後端),所以即使用戶以某種方式顯示了一個「祕密」組件而沒有被授權(通過黑客攻擊或僅僅因爲一個bug),你的API不應該返回任何數據,所以它不會顯示任何有意義的信息。是否有意義? –

回答

0

這是可能的。您可以創建一個HOC(高階組件),用於掛鉤React的生命週期事件並分派動作將它們映射到redux-saga。在您的傳奇中,您可以使用take來同步生命週期和控制流程。

請讓我知道,如果你需要一個工作的例子。我將在Github上添加一個示例到my repository

// HOC 
import Lifecycle from '...'; 

// Target component 
class SecretPane extends Component { 
    // ... 
} 

// Export wrapped SecretPane component 
export default Lifecycle(SecretPane); 

// ... 

function* lifecycle() { 
    yield take(COMPONENT_WILL_MOUNT); 

    // Do something before mounted 

    yield take(COMPONENT_DID_MOUNT); 

    // Do something after mounted 

    yield take(COMPONENT_WILL_UNMOUNT); 

    // Do something before unmounted 
}