首页 > 解决方案 > 作为道具传递的反应状态不会在子组件中更新

问题描述

嗨,我想知道是否有人可以解释为什么当每个函数的返回区域作为道具传递给孩子时,第一个函数会更新道具并呈现孩子,但第二个函数中的一个小变化针对所需的确切值确实不是?我想我可能会以某种方式丢失原始参考,但不知道如何修复它。提前致谢

getAudioControls1(controls,rooms){    
    let zones = []
    
    for (const key in controls) {
        if (controls.hasOwnProperty(key)) {
            const element = controls[key];
            if (element.type === "InfoOnlyText" && element.name === "Synched") {   
                let room = this.getReqRoom(element.room, rooms)
                element.roomName = room.name
                zones.push(element)
            }
        }
    }    
    return zones
}
getAudioControls2(controls,rooms){
    let zones = []
    for (const key in controls) {
        if (controls.hasOwnProperty(key)) {
            const element = controls[key]; 
            if (element.type === "InfoOnlyText" && element.name === "Synched") {     
                let room = this.getReqRoom(element.room, rooms)
                let rawZones = []
                element.roomName = room.name
                rawZones.push(element.roomName,element.statesValue.text)
                zones.push(rawZones)
            }
        }    
    }
    return zones
}

标签: javascriptreactjs

解决方案


在第一个示例中,您将element(我猜它是一个对象)推送到zones. 结果,您有对象数组。

在第二个中,您将数组推rawZones送到您的zones. 结果,您有数组数组。


推荐阅读