javascript - React js state props 在组件挂载后如何工作?
问题描述
我如何使用我的状态并通过道具在我的组件子项上使用?因为我想在我的子组件中使用像单元这样的数据。
在父母我这样设置:
const { unit } = this.state
然后我用道具调用子组件
...
export default EditData extends Component {
constructor(props){
super(props)
this.state = {
dataId: this.props.match.params.id,
...,
measurement: ''
}
this.onTextboxChangeMeasurement = this.onTextboxChangeMeasurement.bind(this)
}
onTextboxChangeMeasurement(event){
this.setState({
measurement: event.target.value
})
}
getData(){
this.DataTicker.data(this.state.dataId)
.then(res => {
this.setState({
...,
measurement: res.measurement
})
})
}
render(){
const {
dataId,
measurement
} = this.state
return(
<DataTickerItem dataId={dataTickerId} unit={measurement}/>
)
}
}
当我这样做时console.log(measurement)
,我看到 2 个结果,第一个是空白,第二个是值。
我想在我的孩子身上使用这个值,但我不能因为单位总是设置为第一个结果。
解决方案
当您设置unit={measurement}
孩子时,这意味着 - 将孩子的unit
变量值设置为measurement
(来自父母)。但是你没有提到measurement
你父母的任何价值。如果您const { unit } = this.state
在父母中,这将更有意义:
<DataTickerItem dataId={dataTickerId} unit={unit}/>
现在您的 DataTickerItem 应该有一个从其父级unit
分配的变量。unit
推荐阅读
- r - 关于使用 ggplot2 绘制 95% 区间的问题
- sql - 根据其他两个表值更新表列
- c# - 将我的 SQL 转换为 LINQ,我得到 System.InvalidOperationException: Client side GroupBy is not supported 错误
- c# - 使用 Linq 解析 XML 文档时只获取第一个值
- c# - 删除分配的操作表示不可预测的结果
- javascript - Firebase 电子邮件链接身份验证导致页面显示“遇到错误”-“所选页面模式无效”
- sql-server - 在写入数据框之前从表中删除记录 - pyspark
- flutter - 将数据从 Flutter 传递到 SwiftUI 主屏幕 WidgetExtension?访问 SQLite DB 本身还是使用方法通道?
- angular - Angular 10重置了充满异步管道的文本区域?
- javascript - 如何将对象属性的名称移动到属性值中