2017-02-15 103 views
1

我有ChooseLevel組件,它有很多按鈕。一旦我點擊一個按鈕onLevelSelected函數正在被調用,它會調用動作創建器,它將返回一個動作類型,此外它會將我重定向到qPage組件。在qPage組件中我做了一些計算,並將結果放在總變量中。 這裏是我的代碼:將自變量從一個組件傳遞到另一個反應本機

ChooseLevel.js

class ChooseLevel extends Component { 
    constructor(props) { 
     super(props); 
    } 
    onLevelSelected(levelNumber) { 
     this.props.levelSelected(levelNumber); 
    } 

    render(){ 
     <Button key={1} onPress={this.onLevelSelected.bind(this, 1)}> 
     <Button key={2} onPress={this.onLevelSelected.bind(this, 2)}> 
     <Button key={3} onPress={this.onLevelSelected.bind(this, 3)}> 
     .... 
    } 
} 

行動的創建者看起來是這樣的:

import { Actions } from 'react-native-router-flux'; 
export const levelSelected = (levelNumber) => { 
    return (dispatch) => { 
     dispatch({ 
     type: 'level_selected', 
     payload: levelNumber 
     }); 
     Actions.qPage(); // redirects me to qPage component 
    }; 
}; 

qPage.js

class qPage extends Component { 
    constructor(props){ 
     ... 
    } 
    calc(){ 
     .... some calculation 
     total = result of previous calculation 
    } 
    render(){ 
    .... 
    .... 
    } 
} 

我如何通過總共變量從qPage到ChooseLevel頁面?

+0

您的qpage有東西要渲染? – Codesingh

+0

是的,我省略了部分代碼。 – splunk

+0

你在使用REDX嗎? – Codesingh

回答

1

你需要做的是什麼,我會走一步看一步:

1)創建一個更大的動作,並通過這一行動中計算出的值。通過道具(減速計算值

2)接入)

3)您可以使用componentWillUpdateProp(nextprops),這裏面機能的研究賦予這個新道具之類的狀態。

乾杯:)

+0

好的,我遵循了這些步驟。現在裏面mapStateToProps函數(這是在ChooseLevel.js文件)我可以正確console.log總值和如果我打印它裏面render()方法我可以成功地看到它。我現在的問題是,我試圖在componentWillReceiveProps()中使用console.log(this.props.total),但它返回undefined – splunk

+0

您能否告訴我代碼 – Codesingh

相關問題