reactjs useEffect不适用于本地存储和forEach

li9yvcax  于 2022-12-03  发布在  React
关注(0)|答案(2)|浏览(155)

在我的项目中,我使用redux存储,数据将存储在本地存储中。每次更新时,本地存储将更新,根据本地存储,我的组件将使用forEach方法呈现。
使用下面的代码,我将从本地存储中获取数据。

const ShowMyFlashcard = () => {
let cardValueObj=[]

 useEffect(() => {

    let cardValue = localStorage.getItem("cardValue");
    if (cardValue == null) {
      cardValueObj= [];
    } else {
      cardValueObj= JSON.parse(cardValue);
    }
  });

 return (
    //  {/* SECTION TO SHOW CREATED ALL CARDS*/}

    <div className="mx-10 my-10 grid grid-cols-3 gap-4 place-content-around flex flex-wrap justify-items-center">
      {cardValueObj.forEach((element) => {
        <div className=" shadow-md bg-white p-5 h-64 w-64 m-4 mx-1.5 my-1.5">
          <div>
            <h1 className="text-center font-bold mx-1.5 my-1.5">
              {element.createGroup}
            </h1>
            <div className="text-center bg-white mx-1.5 my-1.5 h-32 w-48">
              <span>{element.groupDescription}</span>
            </div>
            <div className="flex justify-center">
              <button className="rounded-md text-red-600 border-solid border-2 bg-white border-red-700 mx-2 my-2 h-8 w-40">
                View Cards
              </button>
            </div>
          </div>
        </div>;
      })}
    </div>
  );
};

导出默认ShowMyMeOH card;

iyzzxitl

iyzzxitl1#

尚未传递任何依赖项数组

useEffect(() => {
   let cardValue = localStorage.getItem("cardValue");
   if (cardValue == null) {
     cardValueObj= [];
   } else {
     cardValueObj= JSON.parse(cardValue);
   }}, []);

在数组中添加一些依赖项。另外,使用let不是一种正确的方法,请尝试使用useState挂钩

sz81bmfz

sz81bmfz2#

.forEach()没有返回值,因此该操作不会向页面输出任何内容。请改用.map()
另外,对.forEach()的回调永远不会返回任何值。当使用.map()时,还要确保回调返回所需的值。

{cardValueObj.map((element) => (
  <div className=" shadow-md bg-white p-5 h-64 w-64 m-4 mx-1.5 my-1.5">
    the rest of your markup...
  </div>;
))}

或者使用显式return

{cardValueObj.map((element) => {
  return (<div className=" shadow-md bg-white p-5 h-64 w-64 m-4 mx-1.5 my-1.5">
    the rest of your markup...
  </div>);
})}

相关问题