【问题标题】:Redux: dispatch when a component / function is initialisedRedux:初始化组件/函数时调度
【发布时间】:2022-11-13 12:52:37
【问题描述】:

我有一个状态,我只想在初始化某个功能组件时进行更改。所以我打算做这样的事情:

export default function SalesFeedPage(){

 const {salesFeed} = useSelector((state) => state.feedReducer);
 const dispatch = useDispatch();
 // i want to do sth like this
 // useEffect(() => dispatch(loadSalesFeed()), []);
 // or
 // dispatch(loadSalesFeed());
 return (
  <div>
   hello
   {salesFeed}
  </div>
 )
}

这不起作用,因为它会无限地重新呈现 SalesFeedPage。

有没有办法在功能组件中实现我想要的?

【问题讨论】:

  • 删除外部调度调用
  • 只保留useEffect(() =&gt; dispatch(loadSalesFeed()), []); 导致useEffect must not return anything besides a function, which is used for clean-up. You returned

标签: javascript reactjs redux


【解决方案1】:

只保留第一个 useEffect 应该可以工作,但请确保只返回您的 useEffect 内的清理函数,而不是您的调度返回值。像这样,

useEffect(() => { dispatch(loadSalesFeed()) }, [])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2019-01-29
    • 2013-07-05
    • 2021-09-24
    • 2016-01-19
    • 1970-01-01
    • 2016-11-28
    相关资源
    最近更新 更多