javascript - 如何访问 axios 加载的对象属性?

标签 javascript reactjs axios

我正在创建一个网站,用于存储 JSON 文件中的变量,然后我可以显示该数据。我试图从对象中提取数据,但我不断收到未定义或空的数组/对象。

这是我的父组件的内容。

export default class App extends Component {
    constructor(){
        super();
        this.state = {
            arrival: {}
        }
    }

    axiosFunc = () => {
        axios.get('https://api.warframestat.us/pc').then(results => {
            this.setState({
                arrival: results.data.voidTrader.activation,
            });
            setTimeout(this.axiosFunc,1000 * 60);
        })
    }

    componentDidMount() {
        this.axiosFunc();
    }
}

接下来,在子组件中,我使用 props 来存储到达数据。

<Baro arrival={this.state.arrival}/>

但是,当我切换到子组件的文件以显示数据时,我得到一个空对象...

componentDidMount(){
    console.log(this.props.arrival)
}

如何才能正确显示数据?

最佳答案

您的子组件可能会在 GET 请求解决之前挂载。您显示的控制台日志位于 componentDidMount 中。尝试从 componentWillReceiveProps 或 componentDidUpdate 控制台记录它,并查看数据是否稍后到达那里。

或者,安装优秀的 React Dev Tools Chrome 扩展并实时观看组件的 props。

关于javascript - 如何访问 axios 加载的对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48493877/

相关文章:

javascript - 在内容更改时使用 Angular 更新 URL

javascript - React router dom 6 路由结构与布局

react-native - 从AsyncStorage获取 token 来创建Axios实例

php - 如何按自定义字段日期订购 wordpress 帖子?

javascript - 使用复选框和输入框中的值将属性模型值绑定(bind)到数组

javascript - jQuery 默默无闻

reactjs - 如何使用自定义 jss 插入点在 material-ui 中配置 makeStyles Hook ?

reactjs - 更改颜色箭头图标 react 选择

vue.js - vue3 组合 api 中的 vuex 模块 axios

javascript - Axios Http 客户端 - 如何使用表单参数构造 Http Post url