2016-07-23 31 views
0

我是React Native的新手,當我遇到此問題時正在使用Navigator播放。React Native- this.props在不同文件中的場景中爲空

這是文件中的我的主類:CategoryScene,

export default class CategoryScene extends Component { 
    render() { 
    ... 
    var testArr = {... } ; 
     testArr.forEach(function(testEl) { 
    var test = this.props.test; 
    }); 
    } 
} 

出於某種原因,在

class SweetSpotClient_Proto extends Component { 
    render() { 
    return (
     <Navigator 
     initialRoute={{ test: CategoryScene }} 
     renderScene={this.renderScene.bind(this)}/> 
    ); 
    } 

    renderScene(route, navigator) { 
    return <CategoryScene test={route.test}/> 
    } 
} 

這是我在文件B場景。道具爲空,所以我無法訪問this.props.test。

我做錯了什麼?

+0

我厭倦了我機器中的完全相同的代碼,它像一個魅力工作。你可以仔細檢查它是否工作? –

+0

所以我發現這個問題,上面的代碼顯然沒有提供足夠的細節。失敗的部分被forEach()塊封裝,出於某種原因(我不知道這是否由JS設計),**在ForEach中,範圍更改爲DedicatedWorkerGlobalScope而不是最內層的閉包**;因此,this.props變爲空...感謝所有您的幫助。 –

+0

更新了原始發佈。我發現**我使用var而不是let,導致forEach的範圍被綁定到最外層對象**而不是最近的封閉對象......謝謝.. –

回答

0

我認爲它需要使用passProps發送。

例如,

return <CategoryScene test={route.passProps}/>

退房Navigating like a Pro

它幫了我很多在我的項目。

+0

從您提供的鏈接中: 'Many人們使用名字passProps,但這可以是任何你想要的名字。 passProps只是有意義,因爲它實際上是傳遞屬性。 ' –

+0

啊,我的錯!感謝您的支持! –

相關問題