map 不是一个函数react.js

问题描述 投票:0回答:1

我在我的网站上创建了一个搜索引擎,以便可以通过用户的姓名搜索用户。用户名的建议应该根据输入的字母出现,但是一旦您单击任何字母,所有内容都会从屏幕上消失,并且控制台上会出现错误: “地图不是函数”

search.jsx组件代码:

import { useState } from "react";
// import axios from "axios";
import { Button } from "@chakra-ui/react";
import "./search.css";

const Search = () => {
    const [value, setValue] = useState('');
    const [data, setData] = useState([]);
    
    const onChange = async (e) => {
        setValue(e.target.value)
        const res = await fetch('http://localhost:5000/api/users')
        const data = await res.json()
        setData(data)
    };

  return (
    <div className="search">
        <div>
            <input 
            type="text"
            value={value}
            className="search"
            placeholder="looking for someone?..."
            onChange={onChange}
            />
            <Button>Search</Button>
        </div>
        <div className="dropdown-content">
          {
            data.map((item) => {
            <div key={item.id}>
              {item.name}
            </div>})
          }
        </div>
    </div>
  )
}

export default Search

搜索前的页面

向搜索引擎输入任意字母后

reactjs search mapping rendering
1个回答
0
投票

您不能将 Map 函数用作 Void 类型,但必须返回一个 ReactNode。参考如下:

data.map((item => 
        <div key={item.id}>
          {item.name}
        </div>)
© www.soinside.com 2019 - 2024. All rights reserved.