Javascript 组件挂载后js状态道具如何工作?

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,

如何通过道具使用我的状态和组件子级? 因为我想在我的子组件中使用类似于单元的数据

在parent中,我设置如下:

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是你的父母吗?没有这样的声明