动态组件怎么可能覆盖彼此的状态?

我创建了基于 Redux 调度的房间对象创建的动态房间组件。


{

    rooms && rooms.map((room, index) => {

        const { name, temperature, humidity, timestamp } = room


        return (

            <Col key={index} xs={12} md={6}>

                <Room 

                    index={index}

                    name={name} 

                    temperature={temperature} 

                    humidity={humidity}

                />

            </Col>

        )

    })

}

每个房间的细节都安装得当。我创建了一个函数来维护一个数组中的 10 个对象。但是,当数组被传递到 Rechart 时,我的组件似乎在同一状态之上更新。


class Room extends Component {

    linechart = () => {

        const { timestamp, temperature, humidity, name } = this.props

        const { chartData } = this.state


        if(chartData.length > 9) chartData.shift()

        chartData.push({

            name, 

            timestamp: moment(timestamp).format('mm:ss'), 

            temperature, 

            humidity})

    }

}

http://img3.mukewang.com/60c2b5b100011c2d10380351.jpg

如您所见,组件详细信息显示正确。然而,chartData 的值被存储在相同的状态中,尽管它们是唯一的组件。

我以 1 秒的间隔运行该函数,日志显示状态以 0.5 秒的间隔更新。这意味着两个<Room/>组件都使用相同的<LineChart/>组件。有谁知道如何克服这个问题?


慕标5832272
浏览 104回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript