我正在构建一个包含TabNavigator
的应用程序。如何在第一个屏幕中启动我在第二个屏幕中也需要的数据。我想知道在这些屏幕之间传递参数的最佳方法是什么
我尝试使用第一个屏幕中的Navigation.setParams()
,但在第二个屏幕中我没有得到它。
const PaymentsStack = createStackNavigator({
Payments: {
screen: PaymentsScreen
}
}
);
const GraphsStack = createStackNavigator({
Graphs: GraphsScreen
});
createBottomTabNavigator({
PaymentsStack,
GraphsStack
});
class PaymentsScreen extends Component {
async componentDidMount() {
const importantData = await GetDataFromServer();
};
}
class GraphsScreen extends Component {
async componentDidMount() {
const importantData = ??;
};
}
我想知道如何获得在GraphsScreen
中返回PaymentsScreen
的importantData
谢谢
你可以
通过getParam
和setParam
来实现这一点
class PaymentsScreen extends Component {
async componentDidMount() {
const importantData = await GetDataFromServer();
this.props.navigation.setParams({ importantData });
};
}
class GraphsScreen extends Component {
async componentDidMount() {
const importantData = this.props.navigation.getParam('importantData');
};
}
getParam
& getParam
可以在您的问题中解决问题......但我想这个用例通常由流行的全局状态管理工具之一管理,例如 redux 或未声明,如他的评论中@Edison提到的那样......