反应原生返回 null 状态

Posted

技术标签:

【中文标题】反应原生返回 null 状态【英文标题】:React native returning null for state 【发布时间】:2017-10-25 21:58:09 【问题描述】:

我正在尝试设置项目的状态,然后将新状态用作传递给我的组件的道具,但它似乎没有及时设置状态

constructor (props) 
    super(props)
    this.cartFirebase = firebaseApp.database().ref('carts')
    this.cartFirebase.child(DeviceInfo.getUniqueID() + '/items').push(
      item: this.props.data.name,
      qty: 1
    ).then((snap) => 
      this.state = 
        cartKey: snap.key
      
    )
  

组件

<AddToCartRow item=this.props.data.sizes option='size' key=this.state.cartKey/>

【问题讨论】:

【参考方案1】:

这是因为在渲染AddToCartRow 时,this.state.cartKeynull

您正在从尚未实现的 Promise .then(..) 中设置 cartKey

您的render() 实际上是在您的constructor 填充this.state.cartKey 之前调用的。

您可以编写以下逻辑以仅在 this.state.cartKey 评估为 true 并且我们知道 null 评估为 false 时渲染组件。

this.state.cartKey && <AddToCartRow item=this.props.data.sizes option='size' key=this.state.cartKey/>

【讨论】:

以上是关于反应原生返回 null 状态的主要内容,如果未能解决你的问题,请参考以下文章

世博会苹果登录反应原生返回空值

反应原生 IAP:订阅总是返回状态:21002 a

使用 null GraphQL 数据反应原生钩子

如何将新的键:值对添加到已经存在的数组状态变量反应原生

检查权限总是返回“拒绝”。反应原生

从底部栏处理返回导航反应原生