微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型错误:players.map 不是函数

如何解决类型错误:players.map 不是函数

我有以下 JSON 数组:-

    [
{"A":"Player","B":"Position","C":"Age","D":"Acc","E":"Wor","F":"Vis","G":"Tec","H":"Tea","I":"Tck","J":"Str","K":"Sta","L":"Pos","M":"Pen","N":"Pas","O":"Pac","P":"OtB","Q":"Nat","R":"Mar","S":"L Th","T":"Lon","U":"Ldr","V":"Jum","W":"Hea","X":"Fre","Y":"Fla","Z":"Fir","AA":"Fin","AB":"Dri","AC":"Det","AD":"Dec","AE":"Cro","AF":"Cor","AG":"Cnt","AH":"Cmp","AI":"Bra","AJ":"Bal","AK":"Ant","AL":"Agi","AM":"Agg"},{"A":"Cyril Ruffier_YP22I ","B":"AM (R),ST (C)","C":"23","D":"14","E":"13","F":"12","G":"11","H":"14","I":"4","J":"13","K":"13","L":"8","M":"8","N":"11","O":"13","P":"15","Q":"8","R":"2","S":"4","T":"8","U":"12","V":"13","W":"8","X":"7","Y":"11","Z":"16","AA":"9","AB":"10","AC":"17","AD":"12","AE":"9","AF":"5","AG":"8","AH":"13","AI":"4","AJ":"18","AK":"10","AL":"11","AM":"7"},{"A":"John Latouchent_YP26B ","B":"M (L),AM (RLC),"C":"19","D":"15","E":"14","F":"10","G":"13","J":"10","L":"12","M":"4","N":"13","P":"12","Q":"11","R":"9","T":"7","U":"10","V":"9","W":"9","X":"9","Y":"14","Z":"9","AA":"8","AB":"11","AC":"14","AD":"9","AE":"10","AF":"8","AG":"9","AH":"10","AI":"9","AJ":"17","AK":"11","AL":"14","AM":"12"}
]

我正在尝试映射它,以便我可以在此组件中显示它:-

import React from 'react';
import { getStickyState } from './Utils';

const Playersdisplay = () => {
  const [players,setPlayers] = getStickyState([],'players');

  return (
    <>
      {players && (
        <div className='attributesdisplay-container'>
          <div className='container'>
            {console.log(players)};
            {players.map((player) => {
              return <div>{player}</div>;
            })}
          </div>
        </div>
      )}
    </>
  );
};

export default Playersdisplay;

这是我的 Utils 组件中的 getStickyState 函数:-

export function getStickyState(defaultValue,key) {
  const [value,setValue] = useState(defaultValue);

  React.useEffect(() => {
    const stickyValue = window.localStorage.getItem(key);

    if (stickyValue !== null) {
      setValue(JSON.parse(stickyValue));
    }
  },[key]);

  return [value,setValue];
}

这是 setStickyState :-

export function setStickyState(defaultValue,setValue] = useState(defaultValue);

  React.useEffect(() => {
    window.localStorage.setItem(key,JSON.stringify(value));
  },[key,value]);

  return [value,setValue];
}

console.log 正在输出在这里发布的 JSON 数组。

然而,players.map 抛出错误 .map 不是一个函数。我也试过 JSON.parse(players) 但无济于事。

非常感谢任何帮助。

谢谢

解决方法

players 是一个字符串,而不是一个数组,因为 console.log(players[0]) 显示为 '['。我不知道为什么,从代码中,因为您调用了 JSON.parse。也许您错误地将玩家数组保存到本地存储,例如使用 JSON.stringify 两次。我们没有您用来将数据存储到 localstorage 的代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?