Flickr api 未使用 React 和 Axios 获取图像
Flickr api not fetching images using React and Axios
我正在尝试从标签中获取图像列表,但没有任何内容被控制台记录或呈现出来。不确定我是否缺少 api.
的参数
编码:http://codepen.io/anon/pen/PWgBgd?editors=0010
const url = "https://api.flickr.com/services/feeds/photos_public.gne?tags=kitten&format=json"
class App extends React.Component {
constructor() {
super()
this.state = {
items: []
}
}
componentWillMount() {
axios.get(url)
.then((response) => {
console.log(response.data.jsonFlickrFeed.items);
this.setState({
items: response.data.jsonFlickrFeed.items
})
})
.catch((err) => {
})
}
render() {
const mappedStorage = this.state.items.map((item) => <li>{item.media.m} </li>)
return (
<div>
hello
<ul>{mappedStorage}</ul>
</div>
);
}
}
ReactDOM.render(<App />, document.body)
您的 axios 调用失败:
.catch((err) => {
debugger;
console.log(err);
})
Error: Network Error
at e.exports (VM970 axios.min.js:2)
at XMLHttpRequest.l.onerror (VM970 axios.min.js:2)
发现问题,Flickr 会用他们的 api 做一些奇怪的事情,除非你传递正确的东西。将 url 设置为:
http://api.flickr.com/services/feeds/photos_public.gne?tags=kitten&format=json&nojsoncallback=true
然后将代码更新为
axios.get("https://api.flickr.com/services/feeds/photos_public.gne?tags=kitten&format=json&nojsoncallback=true")
.then((response) => {
console.log(response.data.items);
this.setState({
items: response.data.items
})
})
.catch((err) => {
console.log(err)
})
似乎最主要的是如果你不添加 nojsoncallback=true
则 JSON 他们 return 是一个回调函数,不能通过正常方式解析幸运的是他们给你一个参数return随心所欲。
我正在尝试从标签中获取图像列表,但没有任何内容被控制台记录或呈现出来。不确定我是否缺少 api.
的参数编码:http://codepen.io/anon/pen/PWgBgd?editors=0010
const url = "https://api.flickr.com/services/feeds/photos_public.gne?tags=kitten&format=json"
class App extends React.Component {
constructor() {
super()
this.state = {
items: []
}
}
componentWillMount() {
axios.get(url)
.then((response) => {
console.log(response.data.jsonFlickrFeed.items);
this.setState({
items: response.data.jsonFlickrFeed.items
})
})
.catch((err) => {
})
}
render() {
const mappedStorage = this.state.items.map((item) => <li>{item.media.m} </li>)
return (
<div>
hello
<ul>{mappedStorage}</ul>
</div>
);
}
}
ReactDOM.render(<App />, document.body)
您的 axios 调用失败:
.catch((err) => {
debugger;
console.log(err);
})
Error: Network Error
at e.exports (VM970 axios.min.js:2)
at XMLHttpRequest.l.onerror (VM970 axios.min.js:2)
发现问题,Flickr 会用他们的 api 做一些奇怪的事情,除非你传递正确的东西。将 url 设置为:
http://api.flickr.com/services/feeds/photos_public.gne?tags=kitten&format=json&nojsoncallback=true
然后将代码更新为
axios.get("https://api.flickr.com/services/feeds/photos_public.gne?tags=kitten&format=json&nojsoncallback=true")
.then((response) => {
console.log(response.data.items);
this.setState({
items: response.data.items
})
})
.catch((err) => {
console.log(err)
})
似乎最主要的是如果你不添加 nojsoncallback=true
则 JSON 他们 return 是一个回调函数,不能通过正常方式解析幸运的是他们给你一个参数return随心所欲。