【发布时间】:2021-04-15 17:44:21
【问题描述】:
我有一个显示姓名的简单列表。当我尝试添加新名称时,它会添加到列表末尾。
如何在列表顶部添加新名称?
我试过push()和unshift(),每次都出现以下错误
list.map is not a function
代码: https://codesandbox.io/s/gallant-minsky-0xgmg?file=/src/App.js
import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
export default () => {
const initialList = [
{
id: "1",
name: "John"
},
{
id: "2",
name: "Doe"
},
{
id: "3",
name: "Seb"
}
];
const [list, setList] = React.useState(initialList);
const [name, setName] = React.useState("");
function handleChange(event) {
setName(event.target.value);
}
function handleAdd() {
const newList = list.concat({ name });
setList(newList);
setName("");
}
return (
<div>
<div>
<input type="text" value={name} onChange={handleChange} />
<button type="button" onClick={handleAdd}>
Add
</button>{" "}
</div>
<ul>
<div>
{list.map((item, index) => (
<li key={item.id}>
<div>{item.name}</div>
</li>
))}
</div>
</ul>
</div>
);
};
【问题讨论】:
标签: javascript reactjs