【发布时间】:2018-02-12 20:23:39
【问题描述】:
我正在尝试将此 axios 调用中的数据传递给子组件 Hero。尽管传递了 props 并成功调用了 axios,但它实际上并不会进入 Hero div。
当我在子组件上 console.log 时,它声称拥有数据,但未能将其推送到 Champions 数组,因此我无法使用它。有什么想法吗?
编辑:
我将在这里补充一点,我确实在这个项目中安装了 react-router,但是这些数据是通过一个“视图”而不是多个页面传递的。
这是父组件
import React, { Component } from 'react';
import axios from 'axios';
import './assets/stylesheets/screen.css';
import Hero from './Hero';
import Info from './Info';
class Home extends Component {
constructor(props){
super(props);
this.state = { champions: [] };
}
componentDidMount() {
axios.get(
'https://api.pinterest.com/v1/boards/gasulliv/pose-
references/pins/?access_token=AQjW6hDdAF0egwEesZA6oJbqP0XQFQ-
m6_jg2RpErKPqdSA7cQAAAAA&limit=100&fields=id%2Clink%2Cnote%2
Curl%2Coriginal_link%2Cimage').then(champions => {
this.setState({ champions });
console.log(champions);
});
}
render() {
return (
<div>
<Hero champions = {this.state.champions} />
<Info />
</div>
);
}
}
export default Home;
这是子组件(在此控制台日志中,我得到两个答案,一个声称它有数据,另一个声称它没有):
import React from 'react';
import Header from './Header';
import 'bootstrap/dist/css/bootstrap.min.css';
import './assets/stylesheets/screen.css';
const Hero = (props) => {
console.log(props);
return (
<div className = "jumbotron kindred">
<Header />
<div className = "textHolder">{ props.champions.length }</div>
</div>
)
}
export default Hero;
【问题讨论】:
-
我认为 axios 返回包含各种信息的响应对象,
statusCode等,您可能需要更新 axios.then调用此:axios.get("...url").then(response => { this.setState({ champions: response.data }); }); -
该 URL 正在返回
400 Bad Request -
我明白你的意思,但还是不行。它声称它在那里,然后再次丢弃数据。
标签: reactjs