组件安装后,React js状态道具如何工作?

时间:2018-11-08 03:54:30

标签: javascript reactjs state react-props

我该如何使用状态并通过道具在子组件上使用? 因为我想在子组件中使用单位等数据。

我在父母中这样设置:

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个结果 第一个为空白,第二个为空白。

我想在孩子身上使用该值,但是我无法将单位始终设置为第一结果。

1 个答案:

答案 0 :(得分:1)

在您的孩子中设置unit={measurement}时,这意味着-将孩子的unit变量值设置为measurement(即将成为父项)。但是您没有提及父母中measurement的任何价值。如果您const { unit } = this.state在您的父母身边,这会更有意义:

<DataTickerItem dataId={dataTickerId} unit={unit}/>

现在,您的DataTickerItem应该具有一个unit变量,并从其父级分配了unit