-MainPage.js
import { push } from 'connected-react-router';
const showDataPage = () => {
dispatch(push(ROUTES.DATA))
}
-DataPage.js
export const DataPage = () => {
const dispatch = useDispatch();
React.useEffect(() => {
dispatch(Actions.fetchData());
}, []);
当我导航到DataPage屏幕时,它将调用fetchData应用程序接口,这大约需要20秒才能获得响应。
如果我在20秒内转到另一个页面而没有从服务器返回完整的响应,并返回到DataPage,它将触发另一个fetchData应用程序接口。
我只想为这个DataPage屏幕的第一次渲染调用这个api。
我知道这可以使用useState或useRef来完成,但我想要的是重用已经呈现的组件,而不是重新挂载DataPage。
从连接的反应路由器使用推送/替换将挂载新组件。
谢谢。
发布于 2020-10-08 03:31:09
你可以尝试使用库https://github.com/CJY0208/react-activation来使keep-alive
路由器,这个库将帮助你只渲染一次-第一次访问的页面。
https://stackoverflow.com/questions/64255301
复制相似问题