当前位置: 首页 > 知识库问答 >
问题:

Javascript,类型错误:Information.map不是函数| |如何使用.map?

养翔
2023-03-14

我目前正在学习crud与express和node的反应。我成功地将数据插入到数据库中,但当我想表示我在使用.map时出错的数据时,我感到困惑

这是我的代码。请帮忙。

import './App.css';
import React, { useState } from 'react';
import axios from 'axios';




function App() {
  const [Name, setName] = useState ("");
  const [Subject, setSubject] = useState (""); 
  const [Message, setMessage] = useState ("");
  const [Information, setInformation] = useState ("");
  

  const addCRUD = () => {
    
    axios.post('http://localhost:3001/create',{
      Name: Name,
      Subject: Subject,
      Message: Message}).then(() => {
        console.log("Success")
         })
  }

  const getCRUD = () => {
    axios.get('http://localhost:3001/DATA').then((response) => {
        setInformation(response.data)
         })
  }


  return (
    <div className="App">
      <div className="container">
      <form>
        <div className="input-group">
          <span className="input-group-addon"><i className="glyphicon glyphicon-user"></i></span>
          <input onChange={(event)=> {
            setName(event.target.value);
          }} id="Name" type="text" className="form-control" name="Name" placeholder="Name"/>
        </div>
        <div className="input-group">
          <span className="input-group-addon"><i className="glyphicon glyphicon-comment"></i></span>
          <input onChange={(event)=> {
            setSubject(event.target.value);
          }}id="Subject" type="subject" className="form-control" name="subject" placeholder="Subject"/>
        </div>
        <div className="input-group">
          <span className="input-group-addon">Message</span>
          <input onChange={(event)=> {
            setMessage(event.target.value);
          }}id="Message" type="text" className="form-control" name="Message" placeholder="Message"/>
        </div>
      
      </form>
      <div className="input-group"> 
          <input onClick={addCRUD}
          id="btn" type="button" className="btn btn-warning" name="btn" placeholder="Submit" value="Submit"/>
        </div>
      </div>
      
      <div className="input-group">
      <input onClick={getCRUD}
      id="btn" type="button" className="btn btn-primary" name="btn" placeholder="Show Data" value="show data"/>
      {Information.map((val,key) => {
        return (
          <div> 
            <h3>
              Name: {val.Name}
            </h3>
          </div>
        )
      }
      )}
      </div>   

    </div>
  );
}

export default App;

我得到的错误62|

63 |

共有3个答案

宋俊艾
2023-03-14

将数据放在阵列上:

const [Information, setInformation] = useState([]);
岳池暝
2023-03-14

您的数据必须是一个数组来应用映射。

const [Information, setInformation] = useState([]);
訾高飞
2023-03-14

需要将数组而不是字符串设置为初始值。

同样,response.data也应该是一个数组。

const [Information, setInformation] = useState ([]);
 类似资料:
  • 无法理解为什么在尝试实现此角度代码时会出现TypeError。它在类({constructor:function(){}})周围生成错误。不确定原因。谢谢你的帮助

  • 我正在尝试在Angular项目中使用包来验证电话号码 但是它给了我 type error:a . getcountrycodeordefault不是函数。 有人能帮我一下吗??

  • 我试着用角函数乘以两个字符串。 但我得到了这个错误: 错误类型错误:公司编号不是一个函数 在HTML中,如何将两个字符串与角度相乘? 编辑: gsc指出,我可以简单地将字符串相乘。 12 但是,要小心 43

  • 我如何在使用ts时将一个项追加到一个状态(React)的对象数组中? 这是我的代码: 我一直得到这个错误:

  • 我的代码: external.js: 不幸的是,当我包含外部脚本时,出现以下错误: 错误:$不是一个函数 我该怎么解决这个问题?请记住,我不能编辑外部Javascript文件,因为它是第三方的。

  • 使用此类型类将地图转换为case类: 此函数用于隐式获取正确的映射器 它可以用作 但我也希望能够将此函数与 Option[Map[]] 或 Future[Map[]] 或 List[Map[]] 一起使用。所以我使用这样的函子实现了一个泛型函数: 但是现在这个函数必须用作 。 但是,我希望能够将该功能用作 无需指定函子类型。这在某种程度上是可能的吗? Shapeless的懒惰可以用来解决这个问题吗