1 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
您通過將對(duì)象文字用作html 標(biāo)記來映射它們。您可能打算使用導(dǎo)入的Person組件。
<div>
{personState.persons.map (person => (
<Person name={person.name} age={person.age}/>
)}
</div>
并且要修復(fù)一個(gè) react-key 警告,因?yàn)樗杏成涞脑囟夹枰ㄒ坏逆I,添加一個(gè) key prop,其值對(duì)于數(shù)組中的數(shù)據(jù)是唯一的,比如 name:
<div>
{personState.persons.map (person => (
<Person key={name} name={person.name} age={person.age}/>
)}
</div>
要正確切換“personList”的顯示:
如果是,則有條件地渲染映射
persons
數(shù)組showPersonsState
true
將狀態(tài)簡化
showPersonsState
為布爾值使用功能狀態(tài)更新正確地
showPersonsState
從以前的狀態(tài)切換
更新了組件代碼
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>
);
};
添加回答
舉報(bào)