我正在尝试设置项目的状态,然后使用新状态作为传递给我的组件的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
}
})
}
答案 0 :(得分:1)
这是因为在呈现AddToCartRow
时,this.state.cartKey
为null
。
您正在承诺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}/>}