首页 > 解决方案 > 将数据保存到 Firebase 后,React 给我一个警告

问题描述

每当我将数据添加到我的 firebase 数据库时,我都会收到以下警告,我该如何解决?

警告:无法在未安装的组件上调用 setState(或 forceUpdate)。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 componentWillUnmount 方法中的所有订阅和异步任务。在组中(在 App.js:62)

提交时将数据保存到firebase的代码:

handleURLFormSubmit = event => {
    event.preventDefault();
    this.toggleRewardModal();

    const self = this;
    let points = 0;
    const memberId = this.state.selectedMember;
    const groupID = this.state.groupid;
    const link = this.state.enteredURL;
    const postRef = database.ref("posts");
    const memberRef = database
        .ref("members")
        .child(memberId)
        .child("groups")
        .child(groupID);

    const groupRef = database
        .ref("groups")
        .child(groupID)
        .child("members")
        .child(memberId);

    memberRef
        .once("value", function(snapshot) {
            points = snapshot.val().points + 10;
        })
        .then(function() {
            memberRef.update({
                points: points
            });
            groupRef.update({
                points: points
            });
            postRef.push({
                link: link,
                member: memberId,
                group: groupID
            });

            self.getGroupMembers();
        });
};

componentWillUnmount() {
    database.ref("groups").off();
    database.ref("members").off();
}

标签: javascriptreactjs

解决方案


推荐阅读