[英]Insert value into a array with hooks (REACT)
所以我有一個 object 我想為數組添加值。
這是我的 object {roomType: t, roomName: n, roomColor: c, appliances:[1] }])
我想在不改變整個 ZA8CFDE6331BD59EB2666666ZZ 的情況下為設備添加值。
這是我的整個組件:
function App(props) { const [rooms, setRooms] = useState([ {roomType:'bedroom', roomName: "snir", roomColor: "blue"} ]) let NewRoom = (t,n,c) => { setRooms([...rooms,{roomType: t, roomName: n, roomColor: c, appliances:[1] }]) } let newAppliances = (a,n) => { rooms.map((item) =>{ if(n === item.name){ item.appliances.push(a) } }) } console.log(rooms) const [indexRoom, setIndexRoom] = useState([]) let chack = (rIndex,rName,rType) =>{setIndexRoom([rIndex, rName,rType])} return ( <div className="App"> <Router> <Switch> <Route exact path = '/' > <Home arr = {rooms} func = {chack} /> </Route> <Route path = '/addroom' render= { (props) =><AddNewRoom add = {NewRoom}{...props}/>}/> <Route path = '/room'> <Rooms arr = {rooms} index = {indexRoom[0]} name = {indexRoom[1]} type = {indexRoom[2]} funcApp = {newAppliances} /> </Route> </Switch> </Router> </div> ); } export default App;
在 newAppliances 我想更新房間的電器。
我相信newAppliances
方法你想更新一個房間的電器,你可以通過執行以下操作來做到這一點,
let newAppliances = (a,n) => {
const index = rooms.findIndex(item => item.name === n);
if(index > -1) {
if(rooms[index].hasOwnProperty(appliances) && rooms[index].appliances.length > 0) {
rooms[index].appliances.push(a);
}
else rooms[index].appliances = [a];
}
setRooms([...rooms]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.