【发布时间】:2021-03-08 06:59:44
【问题描述】:
假设当我的 React 应用程序运行时,它连接到一个 MQTT 代理,在该代理中数据被发送到应用程序。然后将该数据存储在一个类似于以下内容的对象中:
var data = {
shoeColor1: 'blue',
shoeColor2: 'red'
shoeColor3: 'orange'
}
以下 React 组件显示该数据。
import React, {Component} from 'react';
import { Button } from 'react-native';
export default class Example extends Component {
constructor(props) {
super(props)
this.state = {
buttonText: `Shoe color is ${this.props.color}`
}
}
render() {
return (
<Button title={this.state.buttonText}/>
)
}
}
并且会像这样使用:
<Example color={data['shoeColor1']}/>
<Example color={data['shoeColor2']}/>
data 对象会不时发生变化,并且每次发生变化时,显示数据的按钮也会发生变化。我还需要将 data 对象保留在 Example 组件之外,因此我不能让这些更改在内部发生。我真正想要的是一种在 data 对象从外部发生变化时更新 React 组件的方法,但我不确定如何实现这一点。如果我将 state 或 props 设置为组件中的某个值,并且这些值在外部发生更改,则该组件将不会重新渲染。
【问题讨论】:
标签: javascript reactjs react-native react-props react-component