我该如何使用状态并通过道具在子组件上使用? 因为我想在子组件中使用单位等数据。
我在父母中这样设置:
const { unit } = this.state
然后我用props调用子组件
...
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个结果
第一个为空白,第二个为空白。
我想在孩子身上使用该值,但是我无法将单位始终设置为第一结果。
答案 0 :(得分:1)
在您的孩子中设置unit={measurement}
时,这意味着-将孩子的unit
变量值设置为measurement
(即将成为父项)。但是您没有提及父母中measurement
的任何价值。如果您const { unit } = this.state
在您的父母身边,这会更有意义:
<DataTickerItem dataId={dataTickerId} unit={unit}/>
现在,您的DataTickerItem应该具有一个unit
变量,并从其父级分配了unit
。