React native 在react native中将变量从一个组件传递到另一个组件

React native 在react native中将变量从一个组件传递到另一个组件,react-native,React Native,我有ChooseLevel组件,它有许多按钮。一旦我点击一个按钮onLevelSelected函数被调用,它将调用action creator,action creator将返回一个动作类型,而且它将把我重定向到qPage组件。在qPage组件中,我进行了一些计算,并将结果放入总变量中。 这是我的密码: 选择level.js class ChooseLevel extends Component { constructor(props) { super(props);

我有
ChooseLevel
组件,它有许多按钮。一旦我点击一个按钮
onLevelSelected
函数被调用,它将调用action creator,action creator将返回一个动作类型,而且它将把我重定向到
qPage
组件。在
qPage
组件中,我进行了一些计算,并将结果放入总变量中。 这是我的密码:

选择level.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)}>
      ....
    }
}
class qPage extends Component {
   constructor(props){
      ...
   }
   calc(){
       .... some calculation
       total = result of previous calculation 
   }
   render(){
     ....
     ....
   }
} 
qPage.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)}>
      ....
    }
}
class qPage extends Component {
   constructor(props){
      ...
   }
   calc(){
       .... some calculation
       total = result of previous calculation 
   }
   render(){
     ....
     ....
   }
} 

如何将total变量从qPage传递到ChooseLevel页面

你需要做的是,我会一步一步地:

1) 再创建一个动作并在该动作内传递计算值

2) 通过道具(减速器)访问该计算值

3) 您可以使用componentWillUpdateProp(nextprops),在这个函数中,将这个新的属性分配给类的状态


干杯:)

你的qpage需要渲染一些东西吗?是的,我省略了部分代码。你在使用redux吗?是的,我在使用redux查看答案。好的,我已经按照步骤进行了操作。现在,在mapStateToProps函数(位于ChooseLevel.js文件中)中,我可以正确地控制台.log total的值,如果我在render()方法中打印它,我可以成功地看到它。我现在的问题是,我试图在componentWillReceiveProps()中控制台.log(this.props.total),但它返回的是未定义的