javascript - 在 ReactJS 中获取时自定义日期查询
问题描述
API的链接-链接
我提供的链接以 dd/mm/yyyy 格式的日期结尾。它看起来像这样(http://fathomless-shelf-5846.herokuapp.com/api/schedule?date=%227/8/2019%22)。您可以替换最后的日期以获得不同日期的结果。如果您想尝试一下,在某些日期它会返回一个空白 json。因此,请尝试各种日期。
我正在使用 reactJS。现在,我的问题是我想从用户那里获取一个自定义输入日期,然后将其插入上面的链接中,然后获取该日期的数据。但我对获取查询知之甚少。所以请提供一些关于如何做到这一点的建议。
我在下面粘贴我的 App.js 代码。不要被那个代理 URL 弄糊涂了。我将它用于 CORS 问题。
import React,{useEffect,useState} from 'react';
import './App.css';
import Calendar from 'react-calendar';
import Header from './components/Header';
const App=()=> {
const proxyUrl = 'https://cors-anywhere.herokuapp.com/';
const targetUrl = 'http://fathomless-shelf-5846.herokuapp.com/api/schedule?date=%227/8/2019%22';
const [allData,setData]=useState([]);
useEffect(()=>{
getData();
},[]);
const getData = async () =>{
const response= await fetch(proxyUrl + targetUrl);
const data=await response.json();
setData(data);
console.log(data);
}
return(
<div className="App">
<Calendar />
{allData.map(dta=>(
<Header head={dta.description} st={dta.start_time} et={dta.end_time}/>
))}
</div>
);
}
export default App;
解决方案
您需要插入一个输入,例如
<input type="date" onChange={v => callBackEnd(v.target.value)}/>
并让你的函数调用
const callBackEnd = async (v) =>{
let result = await fetch(targetUrl+ new Intl.DateTimeFormat('default', {
day: 'numeric',
month: 'numeric',
year: 'numeric'
}).format(v)
const data=await response.json();
setData(data);
}
你需要从 targetUrl 中删除日期才能工作
推荐阅读
- python - Python:在数组中查找元素,如果没有找到,则执行某些操作
- vue.js - Vue js停止第二个事件
- jenkins - 詹金斯奴隶(服务),无法检测到量角器
- wpf - 如何从代码中的绑定对象获取值作为字符串(WPF)
- python - 无法通过 django 连接 docker mysql
- python - TensorFlow 和词嵌入 - TypeError: unhashable type: 'numpy.ndarray'
- mysql - 表锁和行锁的区别
- javascript - 对新项目使用 Angular 5
- windows - 子上下文菜单的“git bash here”在 Windows 根路径中打开
- php - 单个查询中的多个联接