Дочерние значения снимка Firebase правильны в журнале, но не установлены в переменные состояния - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь получить данные из базы данных Firebase и назначить значения переменным состояния.

Вот метод:

findStudent = async(e) => {
        e.preventDefault()
        var _studentNumber = this.state.StudentNumber
        var _uid = this.state.uid

        // get reference to database location we want
        const loc = firebase.database().ref('/students/' + _uid + '/' + _studentNumber)
        console.log(loc.toString())
        loc.once('value', snapshot => {
            snapshot.forEach(child => {
                this.setState({ 
                    BlockID: child.val().blockchainKey,
                    CourseCode: child.val().courseCode,
                    CourseName:  child.val().courseName,
                    StudentName: child.val().studentName
                })
            })
        })
    }

Вот переменные состояния:

state = {
        user: '',
        uid: '',

        StudentName: '',
        StudentNumber: '',
        CourseCode: '',
        CourseName: '',
        BlockID: '',
        studentArray: [],
    }

И вот где я их показываю:

<div className="row">
                    <div className="col-sm">
                        {this.state.StudentName}
                    </div>
                    <div className="col-sm">
                        {this.state.StudentNumber}
                    </div>
                    <div className="col-sm">
                        {this.state.CourseCode}
                    </div>
                    <div className="col-sm">
                        {this.state.CourseName}
                    </div>
                    <div className="col-sm">
                        {this.state.BlockID}
                    </div>
                </div>

Когда я console.log child.val (), я вижу правильные значения, но они не устанавливаются в переменные состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...