Arrays 使用钩子和useState访问数组
我的代码如下:Arrays 使用钩子和useState访问数组,arrays,reactjs,react-hooks,jsx,Arrays,Reactjs,React Hooks,Jsx,我的代码如下: const [personsState, setPersonsState] = useState({ person: [ { name: 'Max', age: 28 }, { name: 'Manu', age: 29 }, { name: 'Stephanie', age: 26 } ], showPersons: false }); 使用下面的代码访问person数组是否是最佳做法 persons = ( <div>
const [personsState, setPersonsState] = useState({
person: [
{ name: 'Max', age: 28 },
{ name: 'Manu', age: 29 },
{ name: 'Stephanie', age: 26 }
],
showPersons: false
});
使用下面的代码访问person数组是否是最佳做法
persons = (
<div>
{personsState.person.map((person) => {
return <Person name={person.name} age={person.age} />;
})}
</div>
);
人员=(
{personstate.person.map((person)=>{
返回;
})}
);
如果使用钩子,React建议将不同类型的状态分离到不同的变量中。与类组件不同,您不应该尝试将所有状态放入单个变量中
发件人:
我们建议将状态拆分为多个状态变量,并根据这些变量的值一起变化
考虑使用persons
(数组)和showPersons
(布尔值)代替:
然后通过映射
persons
变量而不是personstate.prson
生成JSX。我觉得您的代码很不错,只有一个额外的建议与React文档部分相关:
键有助于识别哪些项已更改、已添加或已删除。应为数组中的元素提供键,以使元素具有稳定的标识
为了消除警告,您需要向.map()
中的每个迭代元素添加key
,如下所示:
<div>
{personsState.person.map((person, index) => {
return <Person key={index} name={person.name} age={person.age} />;
})}
</div>
{personstate.person.map((person,index)=>{
返回;
})}
<div>
{personsState.person.map((person, index) => {
return <Person key={index} name={person.name} age={person.age} />;
})}
</div>