在文件之间传递状态值

时间:2019-05-25 01:17:20

标签: reactjs react-native state

我无法将状态值从一个文件传递到另一个文件。我需要这样做,因为当我要从数据库中提取信息时,它将需要显示有关这些值的更多详细信息。

我有一个FlatList,当单击它时,它将设置单击的项目的值的状态值。但是它还应该导航到新屏幕,同时还将这些值传递到该新屏幕以从数据库中提取。

这是我的函数,用于设置状态并调用该函数以将值传递到新屏幕。

_onSectionListPress = (id) {
            this.setState({ jobId: id}, () => this._showJobDetail()); 
        };

这是我导航至新屏幕的功能。但这就是我如何传递值的地方。

_showJobDetail = () => {
            this.props.navigation.navigate("JobDescriptions", this.state.stakeholderID, this.state.jobId)
        };

我正在使用反应导航来尝试执行此操作。

很抱歉以如此复杂的方式询问似乎简单的事情。我仍然对本机反应还很陌生,我不确定该怎么做。

3 个答案:

答案 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")