首页 > 解决方案 > ReferenceError:在初始化之前无法访问“trainingID”

问题描述

我应该如何访问我的 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

在我刚刚调用的方法下:

常量训练ID = 训练ID;

我应该改变什么?

标签: javascriptreactjsaxiosconstants

解决方案


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

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

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

推荐阅读