首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >useEffect不使用本地存储和forEach

useEffect不使用本地存储和forEach
EN

Stack Overflow用户
提问于 2022-12-02 12:43:14
回答 2查看 32关注 0票数 -1

在我的项目中,我正在使用redux存储,该数据将存储在本地存储中。在每一个新的更新中,本地存储都会更新,并且根据本地存储,我的组件将使用forEach方法呈现。

使用下面的代码,我将从本地存储中获取数据。

代码语言:javascript
复制
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>
  );
};

出口违约ShowMyFlashcard;

EN

回答 2

Stack Overflow用户

发布于 2022-12-02 12:51:31

您还没有传递任何依赖数组

代码语言:javascript
复制
const [cardValue, setCardValue] = useState([]);

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

在数组中添加一些依赖项。同时,使用let也不是一种正确的方法,尝试使用useState钩子

票数 0
EN

Stack Overflow用户

发布于 2022-12-02 15:47:45

.forEach()没有返回值,因此操作不会向页面输出任何内容。使用.map()代替。

此外,对.forEach()的回调从不返回任何内容。使用.map()时,还要确保回调返回所需的值。

代码语言:javascript
复制
{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

代码语言:javascript
复制
{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>);
})}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74655963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档