如何在状态中写入变量?

时间:2017-10-28 21:34:47

标签: javascript reactjs firebase-realtime-database

如何在状态中写入变量s?如何将状态中的变量写为包含来自数据库的snap.key的键?

componentDidMount(){ 

    let cardQuantity = firebase.database().ref("Users"); 

    cardQuantity.on('child_added',snap => { 

        let cardsValue = cardQuantity.child(snap.key); 

        let cardId = {cardId : snap.key}; 
        this.setState({cardsId : [cardId].concat(this.state.cardsId)}); 

        let s = snap.key;
        this.setState({cards : []}); 

        cardsValue.on('value',snap => { 

            snap.forEach((childSnapshot)=> { 
                let card = {text: childSnapshot.val(), id: childSnapshot.key}; 
                //   this.setState({s : [card].concat(this.state.cards)}); 
            });
        }); 
    }) 
}

<div className="Info" > 
    { this.state.cardsId.map( cardsId => <div className="Cards" key={cardsId.cardId}> 
    //    {this.state.cards.map( card => <h2 key={card.id} >
    {card.text}</h2>) } 
</div>) }

1 个答案:

答案 0 :(得分:2)

您可以使用键的括号表示法:{[key]:value}

this.setState({[s] : [card].concat(this.state.cards)});  

您可以阅读有关此here的更多信息。