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>
);
};
添加回答
舉報