【发布时间】:2021-11-16 19:31:28
【问题描述】:
我有这些路由器
function Rutas(){
<Provider store={store}>
<Router>
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route path="/about">
<About />
</Route>
</Switch>
</Router>
</Provider>
}
这是我的侧边栏
function Home(){
return (
<>
<NavLink to="/home">Home</NavLink>
<NavLink to="/about">About</NavLink>
</>
)
}
这是 Home 组件
function Home(){
const dispatch = useDispatch();
const homeData = useSelector((data) => data.homeData);
React.useEffect(() => dispatch(getHomeDataAction),[dispatch])
return (
<>
{
homeData.map((res) => <span>{res.title}</span>)
}
</>
)
}
这是关于组件
function About(){
const dispatch = useDispatch();
const aboutData = useSelector((data) => data.aboutData);
React.useEffect(() => dispatch(getAboutDataAction),[dispatch])
return (
<>
{
aboutData.map((res) => <span>{res.title}</span>)
}
</>
)
}
在第一次渲染 Home 组件的页面加载时,没关系,当我将路由更改为 About 组件时,它也被渲染了,这没关系,但问题是当我再次将路由更改为 Home 组件时,它又被渲染了它调用 useEffect 并再次调度,我想防止在路线更改时再次调度,因为我有很多数据并且需要一段时间才能再次呈现来自 USESELECTOR 和 UI 的数据,它太慢了。
请告诉我一些解决方案或建议。
谢谢☺
【问题讨论】:
-
以大写字母书写要求不会为您提供更快或更好的答案。相反,请尽量保持谦虚,整理您的想法并注意处理您的详细信息。
标签: javascript reactjs react-redux react-router react-router-dom