React native为状态返回null

时间:2017-05-25 09:45:19

标签: react-native components states prop setstate

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

select max(Value), UserID
from table
group by UserID

组件

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
      }
    })
  }

1 个答案:

答案 0 :(得分:1)

这是因为在呈现AddToCartRow时,this.state.cartKeynull

您正在承诺cartKey内设置.then(..),但尚未履行。

您的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}/>}