我正在使用 Gatsby 和股票市场 API 制作股票投资组合项目。目前,当您按股票代码搜索时,它会在表格中返回股票代码、市值和上一个收盘价。当您单击返回的股票代码时,它会将您带到另一个页面。在下一页上,我希望能够访问相同的 API 搜索,以显示股票的更多详细信息。
昨晚在 StackOverflow 上有人告诉我,我可以通过 Link 发送 API 数据,但是在查看了一些文档之后,我不确定如何具体实现我所描述的内容。
我不介意将 details.js 切换到类组件,我之前尝试过并设置了状态,但我遇到了很多不同的错误。
index.js
import React from "react"
import { Link } from "gatsby"
import axios from "axios"
import "../css/style.css"
import Layout from "../components/layout"
import { symbol } from "prop-types"
export default class index extends React.Component {
state = {
companyName: "",
previousClose: "",
marketCap: "",
change: "",
symbol: "",
topStocks: []
}
componentDidMount() {
const API_KEY = '******************';
axios.get(`https://cloud.iexapis.com/stable/stock/market/previous?token=${API_KEY}`)
.then(res => {
console.log(res)
const topStocks = res.slice(1);
this.setState({ topStocks })
})
}
clickHandler = (event) => {
if (event.keyCode === 13) {
const query = event.target.value;
const API_KEY = '******************';
axios.get(`https://cloud.iexapis.com/stable/stock/${query}/quote?token=${API_KEY}`)
.then(res => {
const companyName = res.data['companyName'];
this.setState({ companyName })
const previousClose = res.data['previousClose'];
this.setState({ previousClose })
const marketCap = res.data['marketCap'];
this.setState({ marketCap })
const change = res.data['change'];
this.setState({ change })
const symbol = res.data['symbol'];
this.setState({ symbol })
})
}
}
呼啦一阵风
LEATH
随时随地看视频慕课网APP
相关分类