作为prop传递的React状态不会在子组件中更新

时间:2020-04-06 19:44:42

标签: javascript reactjs

您好,我想知道有人可以解释为什么当每个函数的返回区域作为props传递给孩子时,第一个函数更新props并渲染孩子,但是第二个函数中的一个小的变化以所需的值不?我想我可能会以某种方式丢失原始参考,但不知道如何解决。预先感谢

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
}

1 个答案:

答案 0 :(得分:0)

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

第二秒,将数组rawZones推入zones。结果,您有了数组数组。