1 回答

TA贡献1862条经验 获得超7个赞
您通过将对象文字用作html 标记来映射它们。您可能打算使用导入的Person组件。
<div>
{personState.persons.map (person => (
<Person name={person.name} age={person.age}/>
)}
</div>
并且要修复一个 react-key 警告,因为所有映射的元素都需要唯一的键,添加一个 key prop,其值对于数组中的数据是唯一的,比如 name:
<div>
{personState.persons.map (person => (
<Person key={name} name={person.name} age={person.age}/>
)}
</div>
要正确切换“personList”的显示:
如果是,则有条件地渲染映射
persons
数组showPersonsState
true
将状态简化
showPersonsState
为布尔值使用功能状态更新正确地
showPersonsState
从以前的状态切换
更新了组件代码
const App = props => {
const [personState, setPersonState] = useState({
persons: [
{ name: "person1", age: 31 },
{ name: "person2", age: 26 },
{ name: "person3", age: 25 }
],
other: "some Other Value"
});
const [otherState, setOtherState] = useState({
otherState: "some other value"
});
const [showPersonsState, setShowPersonsState] = useState(false);
const togglePersonsHandler = () => setShowPersonsState(show => !show);
return (
<div className="App">
<h1> HI, I'm the react app</h1>
<button onClick={togglePersonsHandler}>Toggle Person</button>
{showPersonsState &&
personState.persons.map(({ age, name }) => (
<Person key={`${name}`} name={name} age={age} />
))}
</div>
);
};
添加回答
举报