【问题标题】:Passing Barcode Scanned Data to Second Screen将条码扫描数据传递到第二个屏幕
【发布时间】:2019-03-13 16:26:36
【问题描述】:

我正在尝试传递我通过扫描条形码收到的数据。我可以使用 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 抓住了我!

【问题讨论】:

  • 我相信您需要为您的数据传递一个名称,例如:navigate('KnownProduct', { data: data });
  • 怎么样toString() 而不是简单的toString

标签: react-native react-navigation


【解决方案1】:

试试这个:

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

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

【讨论】:

  • 所以我尝试了这个,我得到的错误是:不变违规:对象作为 React 子级无效(找到:带有键 {type,data} 的对象。如果你打算渲染一个集合孩子们,请改用数组。
  • 你能控制一下数据并给我看吗?显然数据是一个对象,我认为它是一个字符串
  • 嗨 Miguel,我设法弄明白了...与您的方法略有不同,但我特别想要对象中的一个参数,并且使用 data.data 为我解决了问题。 :) (检查问题的底部我做了什么)
【解决方案2】:

试试这个

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

【讨论】:

    猜你喜欢
    • 2020-11-08
    • 2021-03-30
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多