Javascript 我能';设置状态时是否过滤数据?

Javascript 我能';设置状态时是否过滤数据?,javascript,arrays,reactjs,react-native,filter,Javascript,Arrays,Reactjs,React Native,Filter,我有一个两个数组,第一个数组包含所有订单,第二个数组包含我从数据库获得的拒绝订单 我需要筛选这些订单,并根据快照密钥从中删除所有被拒绝的订单 所以在运行我的代码之后 我看到所有订单并包含被拒绝的订单,尽管我在控制台测试了我的代码,它工作正常,但在我的React应用程序中不工作 订单数组 let ordersArray = [ {"snapshotKey":"-awdawadsdwwd","username":"Joe"}, {"snapshotKey":"-badsdasdad","

我有一个两个数组,第一个数组包含所有订单,第二个数组包含我从数据库获得的拒绝订单

我需要筛选这些订单,并根据快照密钥从中删除所有被拒绝的订单

所以在运行我的代码之后

我看到所有订单并包含被拒绝的订单,尽管我在控制台测试了我的代码,它工作正常,但在我的React应用程序中不工作

订单数组

let ordersArray = [
   {"snapshotKey":"-awdawadsdwwd","username":"Joe"},
   {"snapshotKey":"-badsdasdad","username":"Annna"},
   {"snapshotKey":"-dasQwaddas","username":"lee"}
]

let rejectedOrders = ["-awdawadsdwwd","-dasQwaddas"] //these orders snapshot keys
为了使我的代码简短,我将把过滤的片段

在得到命令并将其推送到单独的数组后,我将状态设置为

    this.setState({
      orders: orderArr.filter(
        order => !rejectedOrders.some(key => order.snapshotKey === key),
      ),
      loading: false,
    });
但遗憾的是,我没有经过任何过滤就收到了这三份订单

编辑1

Const {rejectedOrders}= this.state;
database()
      .ref(
        `Providers/CategoriesOrders/${service ||
          serviceStorage ||
          serviceName}/${uid}`,
      )
      .on('value', snapshot => {
        console.log(snapshot.val());
        let orderArr = [];
        snapshot.forEach(childSnapshot => {
          orderArr.push({
            snapshotKey: childSnapshot.key,
            username: childSnapshot.val().username,
            buildingNumber: childSnapshot.val().buildingNumber,
            service: childSnapshot.val().categoryName,
            date: childSnapshot.val().date,
            time: childSnapshot.val().time,
            description: childSnapshot.val().problemDescription,
            status: childSnapshot.val().status,
            images: childSnapshot.val().Images,
          });
        });
        this.setState({
      orders: orderArr.filter(
        order => !rejectedOrders.some(key => order.snapshotKey === key),
      ),
      loading: false,
    });
      });

这应该行得通,我想你在别的地方遇到了问题。@AkhilNayak再次检查这个问题please@goto1是的,我在单独的js文件中测试了它,效果很好,我不知道为什么不在这里工作:/@AkhilNayak我收到了所有订单!这应该很好,你在哪里看到它不起作用?