刷新时,基于Firebase值选中= true

时间:2019-05-13 19:32:08

标签: javascript firebase firebase-realtime-database checkbox

我有一个与Firebase实时连接的应用程序。我可以使用复选框将数据设置为Firebase,但是在基于Firebase数据设置属性检查时面临着问题。

我的JS代码

firebase.database().ref('0001/switches/001').on('value', snapshot => {

            var chValue = snapshot.val();

            console.log(chValue);

            if (chValue == true) {
                document.getElementById("sch1").checked = true;
            } else {
                document.getElementById("sch1").checked = false;
            }                
        });

我使用console.log()确认chValue正在基于Firebase数据工作,但是,我不知道为什么...

document.getElementById("sch1").checked = true;

不起作用!如果我把它放在firebase函数之外,那么我可以找到原因。

此工作

 firebase.database().ref('0001/switches/001').on('value', snapshot => {

            var chValue = snapshot.val();

            consolo.log(chValue);

            if (chValue == true) {
                document.getElementById("sch1").checked = true;
            } else {
                document.getElementById("sch1").checked = false;
            }            
        });

//Outside firebase function
        document.getElementById("sch1").checked = true;

1 个答案:

答案 0 :(得分:0)

我找到了一个很好的解决方案,例如:

 state = { swichStatus: undefined }

    switch1() {
        firebase.database().ref('0001/switches/001').set(1);
    }

    toggleSwitch = (value) => {

        this.setState({ swichStatus: value })

        if (value == true) {
            firebase.database().ref('0001/switches/001').set(true);
        }
        else {
            firebase.database().ref('0001/switches/001').set(false);
        }
    }