【问题标题】:ReferenceError: Cannot access 'trainingID' before initializationReferenceError:在初始化之前无法访问“trainingID”
【发布时间】:2020-07-28 16:23:07
【问题描述】:

我应该如何访问我的 componentDidMount 方法中的数据?我已经将“trainingID”发送到我的组件中

<AthleteRegisterForm trainingID={this.props.match.params.trainingID}/>

现在我在我的组件中这样引用它:

class AthleteRegisterForm extends React.Component {

    trainingID = this.props.trainingID;

    state = {
        training: {}
    }

    componentDidMount() {
    const trainingID = trainingID;
        axios.get(`http://127.0.0.1:8000/api/${trainingID}`)
            .then(res => {
                this.setState({
                    training: res.data
                });
            })
    }

trainingID = this.props.trainingID

在方法下我只是调用:

const trainingID = trainingID;

我应该改变什么?

【问题讨论】:

  • 我能问一下你为什么不只是将const trainingID 设置为this.props.trainingID 吗?

标签: javascript reactjs axios constants


【解决方案1】:

您在初始化之前使用trainingID。它是正确的。您已在 componentDidMount 挂钩中使用 const 声明它并在类中使用。你想像这样使用它:

class AthleteRegisterForm extends React.Component {
  constructor(props) {
    // this is necessary to use it on componentDidMount
    super(props)
    //...
  }

  componentDidMount() {
    const trainingID = this.props.trainingID;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-12-29
  • 2021-09-10
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2021-09-30
相关资源
最近更新 更多