我有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(){
....
....
}
}
如何将 total 变量从qPage传递到ChooseLevel页面?
答案 0 :(得分:1)
你需要做的是,我会一步一步地去做:
1)再创建一个动作并在该动作中传递计算值。
2)通过道具(减速机)访问该计算值
3)你可以使用componentWillUpdateProp(nextprops),在这个功能中将这个新道具分配给班级的状态。
干杯:)