我是新的React,我正在开发一个组件,使用一个DatePicker和选定的日期,它呈现包含一些图表的页面。
我这里的问题是,每次我通过在DatePicker中选择一个新日期来更改startDate变量时。我想要的行为是:
1.从日期选择器中选择日期
1.按下“更新 Jmeter 板”按钮
1.重新渲染所有组件
即,等待按钮被按下以重新呈现所有组件。
有人能告诉我如何才能实现这种行为吗?
import React, { useState, useEffect } from "react";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
// CSS Modules, react-datepicker-cssmodules.css//
import 'react-datepicker/dist/react-datepicker-cssmodules.css';
import Spinner from '../../components/layout/Spinner';
//Cards Paginas
import Pagina1 from '../../components/tableros/Cards/Pagina1';
import Pagina2 from '../../components/tableros/Cards/Pagina2';
import Pagina3 from '../../components/tableros/Cards/Pagina3';
import Pagina4 from '../../components/tableros/Cards/Pagina4';
import Pagina5 from '../../components/tableros/Cards/Pagina5';
import Pagina6 from '../../components/tableros/Cards/Pagina6';
const ReporteDiario = () => {
const [startDate, setStartDate] = useState(new Date());
const [renderPages, setRenderPages] = useState(true);
const handleClick = () => {
setRenderPages(!renderPages);
}
// Para poder actualizar los componentes cada que se cambie la fecha
useEffect(() => {
}, [renderPages]);
function PagesComponent() {
return (
<div className="cards-container">
<Pagina1
date={startDate} />
<Pagina2 />
<Pagina3 />
<Pagina4 />
<Pagina5 />
<Pagina6 />
</div>
);
}
return (
<>
<aside className='col-span-2 border-2 border-blue-600'>
<div className="form-group">
<DatePicker
selected={startDate}
showIcon
onChange={(date) => setStartDate(date)}
isClearable
dateFormat="yyyy-MM-dd"
placeholderText="Select date"
closeOnScroll={true}
/>
</div>
</aside>
<div>
<button id='ReporteDiario' onClick={handleClick} className='text-left pl-1 my-1 border-2 border-blue-600'>
Update Dashboard
</button>
{renderPages && <PagesComponent/>}
</div>
</>
)
}
export default ReporteDiario
我一直在研究如何使用钩子,比如useEffect,useRef,但目前我还不能处理这个问题。
1条答案
按热度按时间djmepvbi1#
大卫,你可以在react中使用Refs。你可以这样做,更新ref,然后按下按钮,从ref更新状态。
希望这对你有帮助:)