【问题标题】:Is it possible to find a value inside an Array of Objects from an ID from another Array of Objects?是否可以从另一个对象数组的 ID 中找到对象数组中的值?
【发布时间】:2021-10-17 21:35:56
【问题描述】:

我尝试检查对象数组中的 ID 当前是否在我的购物车数组中,该数组也包含对象。有什么方法可以让它以良好的性能工作吗? React 还显示一个错误:重新渲染过多。 React 限制渲染次数以防止无限循环。

我的代码:

import { useState } from "react";

const UpsellItems = [
  {
    searchId: "Cart Id 1",
    suggestionId: "Id 1",
    message: "1",
  },
  {
    searchId: "Cart Id 2",
    suggestionId: "Id 2",
    message: "2",
  },
];

const CartUpsell = ({ cart }) => {
  const [upsell, setUpsell] = useState("");

  UpsellItems.map((UpsellItem) => {
    for (var i = 0; i < cart.length; i++) {
      if (cart[i]._id === UpsellItem.searchId) {
        setUpsell(UpsellItem.message);
        break;
      }
    }
  });

  return <div className="">{upsell}</div>;
};

export default CartUpsell;

【问题讨论】:

    标签: arrays reactjs loops dictionary object


    【解决方案1】:

    永远不要在组件内部调用setState。它需要在函数内部调用或hooks effect

    在这种情况下,您应该拨打useEffect

    useEffect(() => {
      UpsellItems.map((UpsellItem) => {
        for (var i = 0; i < cart.length; i++) {
          if (cart[i]._id === UpsellItem.searchId) {
            setUpsell(UpsellItem.message);
            break;
          }
        }
      });
    }, [])
    

    【讨论】:

      猜你喜欢
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多