我无法将状态值从一个文件传递到另一个文件。我需要这样做,因为当我要从数据库中提取信息时,它将需要显示有关这些值的更多详细信息。
我有一个FlatList,当单击它时,它将设置单击的项目的值的状态值。但是它还应该导航到新屏幕,同时还将这些值传递到该新屏幕以从数据库中提取。
这是我的函数,用于设置状态并调用该函数以将值传递到新屏幕。
_onSectionListPress = (id) {
this.setState({ jobId: id}, () => this._showJobDetail());
};
这是我导航至新屏幕的功能。但这就是我如何传递值的地方。
_showJobDetail = () => {
this.props.navigation.navigate("JobDescriptions", this.state.stakeholderID, this.state.jobId)
};
我正在使用反应导航来尝试执行此操作。
很抱歉以如此复杂的方式询问似乎简单的事情。我仍然对本机反应还很陌生,我不确定该怎么做。
答案 0 :(得分:0)
您应该lift the state。一种方法是建立一个存储库以跟踪数据。如何执行此操作的示例很多,包括一个I described here和诸如Redux之类的现成软件包。
答案 1 :(得分:0)
this.props.navigation.navigate('JobDescriptions', {stakeholderID: this.state.stakeholderID,})
在新屏幕中,您可以像这样获得价值
const { navigation } = this.props;
const JobDescriptions= navigation.getParam('JobDescriptions', null);
答案 2 :(得分:0)
您应该像这样传递状态变量
this.props.navigation.navigate('JobDescriptions', {
stakeholderID: this.state.stakeholderID,
jobId: this.state.jobId,
});
并像这样调用那些状态变量
this.props.navigation.getParam("stakeholderID", "noId")