为什么在使用 React 时我的页面没有随着向我的数组添加元素而更新
Why is my page not updating with the addition of an element to my array when using React
我正在开发一个基本的 React 应用程序,我使用表单提交一个人的名字,然后它会显示在屏幕上。输入名称后,数组会正确更新,但屏幕上没有任何变化。这就是我用来显示此人姓名的内容。在这种情况下,我对 persons 使用了 useState,所以我认为它应该更新。我对 React 还是很陌生,所以非常感谢您的帮助。提前致谢
{persons.map(person =>
<div key={person}>{person.name}</div>
}
编辑:
const [persons, setPersons] = useState([
{ name: 'Arto Hellas' }
])
const [newName, setNewName] = useState('')
const addPerson = (event) => {
event.preventDefault()
setPersons(persons.concat(newName))
setNewName('')
}
不幸的是,当你使用这些类型的数组函数时,React 并不认为你已经改变了状态。通常建议在 setState 调用中使用回调,例如:
const addPerson = (e) => {
e.preventDefault();
setPersons((prevPersons) => [...prevPersons, { name: newName }]);
setNewName('');
}
const [persons, setPersons] = useState([
{ name: 'Arto Hellas' }
])
const [newName, setNewName] = useState('')
const addPerson = (event) => {
event.preventDefault()
setPersons([...persons,{name:newName}])
setNewName('')
}
我正在开发一个基本的 React 应用程序,我使用表单提交一个人的名字,然后它会显示在屏幕上。输入名称后,数组会正确更新,但屏幕上没有任何变化。这就是我用来显示此人姓名的内容。在这种情况下,我对 persons 使用了 useState,所以我认为它应该更新。我对 React 还是很陌生,所以非常感谢您的帮助。提前致谢
{persons.map(person =>
<div key={person}>{person.name}</div>
}
编辑:
const [persons, setPersons] = useState([
{ name: 'Arto Hellas' }
])
const [newName, setNewName] = useState('')
const addPerson = (event) => {
event.preventDefault()
setPersons(persons.concat(newName))
setNewName('')
}
不幸的是,当你使用这些类型的数组函数时,React 并不认为你已经改变了状态。通常建议在 setState 调用中使用回调,例如:
const addPerson = (e) => {
e.preventDefault();
setPersons((prevPersons) => [...prevPersons, { name: newName }]);
setNewName('');
}
const [persons, setPersons] = useState([
{ name: 'Arto Hellas' }
])
const [newName, setNewName] = useState('')
const addPerson = (event) => {
event.preventDefault()
setPersons([...persons,{name:newName}])
setNewName('')
}