亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React Item.map 不是函數

React Item.map 不是函數

開心每一天1111 2023-05-19 19:56:07
我正在嘗試為狀態數組 personState 中的值實現名稱更改處理程序。const [personState, setPersonState] = useState([            { id:'asdasd', name: "Max", age: 28 },            { id:'asdasdsd', name: "Manu", age: 29 },            { id:'assddasd', name: "Stan", age: 31 },  ]);這是處理名稱更改事件的函數:const nameChangeHandler = (event, id) => {        const personIndex = personState.findIndex(p => {            return p.id === id;//find index of the value in personstate with id equal id passed in        })        const person = {...personState[personIndex]} // get all the object value inside that person        person.name = event.target.value; //change name of that copy person to the input value        const persons = [...personState]; //copy array of current personState        persons[personIndex] = person// change value of that person in the array        setPersonState(...personState, persons);//set state with the new array    }下面是我在切換顯示時使用 map 遍歷 personState 數組的地方。用于顯示數據和刪除數據的映射工作但是當我想實現名稱更改時,它突然返回:TypeError: personState.map is not a functionAppD:/React App/react-guide/src/App.js:52  49 |  <button onClick={() => togglePersonHandler()}>  50 |      Switch Name  51 |  </button>> 52 |  {showPerson ? personState.map((person,index) => {  53 |       return <Person click = {()=>deletePersonHandler(index)} changed={(event) => nameChangeHandler(event, person.id)} key={person.id} name={person.name} age ={person.age}/>  54 |     }) : null}  55 | </div>任何幫助將非常感激
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

這是罪魁禍首:

setPersonState(...personState, persons);//set state with the new array

它應該被新值替換(只有一個參數)

setPersonState(persons);//set state with the new array


查看完整回答
反對 回復 2023-05-19
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號