将条形码扫描的数据传递到第二个屏幕

时间:2019-03-13 16:26:37

标签: react-native react-navigation

我正在尝试传递从扫描条形码中收到的数据。我可以使用 JSON.stringify(data)打印数据,并且正在传递数据,但似乎无法显示它。

通过以下方式成功传递数据:

_handleBarCodeRead = data => {
Alert.alert(
  'Scan successful!',
  JSON.stringify(data)
);

const { navigate } = this.props.navigation;
navigate('KnownProduct', {data})
};

尝试在此页面上呈现数据:

  render(){
    const { navigate } = this.props.navigation;
    return(
        <View style={styles.container}>
            <Text>{this.props.navigation.state.params.data.toString}</Text>
        </View>
    );

我知道导航工作正常,因为如果我对值进行硬编码,则屏幕会在扫描条形码并显示硬编码值后进行导航。但是,我想我尝试使用以下错误地调用数据: this.props.navigation.state.params.data.toString 但没有办法弄清楚如何显示传递的数据。

有什么反应能够帮助新手的本地专家吗?

好的....所以我想通了...感谢一位评论者指出我应该像这样传递数据:

navigate('KnownProduct', {data: data})

然后重定向页面中缺少的是:

<Text>{this.props.navigation.state.params.data.data}</Text>

data.data吸引了我!

2 个答案:

答案 0 :(得分:0)

尝试一下:

navigate('KnownProduct', {data:JSON.stringify(data)})

AND

<Text>{this.props.navigation.state.params.data}</Text>

答案 1 :(得分:0)

尝试

 navigate('KnownProduct', {data:data.data})
<Text>{this.props.navigation.getParam('data')}</Text>