2017-06-28 58 views
4

我想呈現一個HOC的反應,但我無法弄清楚如何使它的作品。 所以我有一個與反應導航完美配合的HOC。 我的想法是顯示渲染包裝HOC的組件。我試圖這樣做:如何渲染一個HOC的反應

render() { 
    return (
     <View style={viewStyle}> 
     {CheckLogin(Login)} 
     </View> 
    ); 
    } 

此CheckLogin是HOC和登錄是組件本身。結果是React不抱怨,但是處於空白狀態。任何想法如何呈現HOC調用組件本身??

+0

'{CheckLogin}'表示您正在解釋JS。如果你想要這個組件,你需要''。不知道這是你的全部問題,但這是一個開始? – jmargolisvt

+1

也許我只是密集,但什麼是HOC? –

+0

A hoc =高階組件。 @jmargolisvt問題是我必須通過道具,我不知道如何 – Ruffeng

回答

4

您只是將HOC作爲JSX中的一個函數調用,而您需要使用</>才能呈現它。

render() { 
    const EnhancedComponent = CheckLogin(Login); 

    return (
    <View style={viewStyle}> 
     <EnhancedComponent /> 
    </View> 
); 
} 
+0

這很有效!真的謝謝你@Crysfel。我的問題是,我試圖直接在回報中呈現它。這幫助了很多,它可以讓我運用HOC的力量。 – Ruffeng

+3

@Crysfel,不要在render方法中使用HOC。 在渲染中調用HOC會導致組件在每個渲染器上重新裝入。 [記錄在這裏](https://github.com/facebook/react/blob/044015760883d03f060301a15beef17909abbf71/docs/docs/higher-order-components.md#dont-use-hocs-inside-the-render-method)以及[在這裏回答](https://stackoverflow.com/questions/39120494/react-higher-order-component-forces-re-render-of-wrapped-component) – pudgereyem