【发布时间】:2019-12-18 14:43:31
【问题描述】:
我正在制作一个小型 To-Do 应用程序来了解有关 ReactJS 和 React Hooks 的更多信息。
问题是我不明白我正在使用的list.map() 有什么问题。它一直告诉我它不是一个函数。但我不明白我一开始是如何将它用作函数的?
我一直在谷歌上查看我做错了什么。我尝试过以多种方式更改我的代码,但我似乎无法弄清楚出了什么问题。一旦我单击“提交”按钮,它就会崩溃并给我TypeError: list.map is not a function 错误。
function ToDoList() {
const [list, setlist] = useState(["Test 1", "Test 2"]);
const [newItem, setnewItem] = useState("");
const handleChange = e => {
setnewItem(e.target.value);
console.log(newItem);
};
const handleSubmit = () => {
setlist(...list, newItem);
};
return (
<div>
<input onChange={handleChange} />
<button onClick={handleSubmit}>Submit</button>
<ul>
{list.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
</div>
);
}
function App() {
return (
<div className="App">
<AppTitle />
<ToDoList />
</div>
);
}
我正在尝试将newItem 添加到list 并通过.map() 呈现列表。
当我启动应用程序时,“测试 1”和“测试 2”渲染,但添加到列表并重新渲染它会崩溃。
【问题讨论】:
-
如果
list.map不是一个函数,那么list不是一个列表。 -
哦,所以它基本上告诉我我用我的 handleSubmit 函数打破了列表?这解释了 Dacre Denny 的回答。
标签: javascript reactjs react-hooks