Javascript 组件挂载后js状态道具如何工作?
如何通过道具使用我的状态和组件子级? 因为我想在我的子组件中使用类似于单元的数据 在parent中,我设置如下:Javascript 组件挂载后js状态道具如何工作?,javascript,reactjs,state,react-props,Javascript,Reactjs,State,React Props,如何通过道具使用我的状态和组件子级? 因为我想在我的子组件中使用类似于单元的数据 在parent中,我设置如下: const { unit } = this.state 然后我用道具调用子组件 ... export default EditData extends Component { constructor(props){ super(props) this.state = { dataId: this.props.match.params.id,
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}/>
)
}
}
。。。
导出默认EditData扩展组件{
建造师(道具){
超级(道具)
此.state={
dataId:this.props.match.params.id,
...,
度量值:“”
}
this.onTextboxChangeMeasurement=this.onTextboxChangeMeasurement.bind(this)
}
ContextBoxChangeMeasurement(事件){
这是我的国家({
度量:event.target.value
})
}
getData(){
this.DataTicker.data(this.state.dataId)
。然后(res=>{
这是我的国家({
...,
测量:分辨率测量
})
})
}
render(){
常数{
数据标识,
测量
}=这个州
返回(
)
}
}
当我执行console.log(测量)
时,我看到2个结果
第一个为空,第二个为值
我想在我的孩子身上使用这个值,但我不能因为单位总是设置为第一个结果。当你在孩子身上设置
unit={measurement}
时,它意味着-将孩子的unit
变量值设置为measurement
(来自父母)。但是你没有提到你父母的测量值。如果您在父级中const{unit}=this.state
,这将更有意义:
现在,您的DataTickerItem应该有一个
unit
变量,并从其父级分配unit
。如果可能,请从组件中添加更多代码,问题不清楚您没有提供足够的上下文。这个单位
值是什么,是静态的还是异步获取的,您在哪里使用控制台。日志
等。在这个网站上花10分钟,您的问题会减少80%:是的,我已经试过了。当i console.log unit时,它将显示2个结果。第一个结果为空,第二个结果为测量值。但当我使用
时,该单位仅设置为第一个结果,直到我不清楚为止。您说您在父级中设置了const{unit}=this.state
。EditData是你的父母吗?没有这样的声明