reactjs - API 使用 React Redux Hooks Saga 重复调用?
问题描述
我将 redux hooks saga 与 API 集成,我想加载项目一次并监听更改,API 不断被调用:
import { loadProjects } from '../../store/actions';
useEffect(() => {
props.loadProjects();
}, []);
return (<React.Fragment>...</React.Fragment>)
const mapStatetoProps = state => state.Projects;
export default connect( mapStatetoProps, { loadProjects })(InvoicesList);
这导致无限循环,从 API 加载数据 -> 更新存储 -> 呈现更改 -> 再次加载数据 -> ...
一次加载项目的解决方案是什么,我是在渲染之前调用还是在减速器初始状态下调用?或者这是使用钩子时的正常现象。
export const loadProjects = () => ({
type: PROJECTS_LIST,
payload: {}
});
这个片段在 index.js -> App.js -> project.js 里面
import store from './store';
const app = (
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>
);
ReactDOM.render(app, document.getElementById('root'));
serviceWorker.unregister();
这是 App.js 代码
return (
<React.Fragment>
<Router>
<Switch>
{userRoutes.map((route, idx) => (
<Authmiddleware
path={route.path}
layout={Layout}
component={route.component}
key={idx}
/>
))}
</Switch>
</Router>
</React.Fragment>
);
}
const mapStateToProps = state => {
return {
layout: state.Layout
};
};
export default connect(mapStateToProps, null)(App);
解决方案
推荐阅读
- javascript - 鼠标向上或向下操作时范围滑块不排序?
- cmake - catkin_make 中的 cmake 版本与全局 cmake 版本不同?
- ruby-on-rails - 以 en 语言获取翻译语言的整个 json
- r - 如何管理 R 包中的遗留依赖项?
- .net-core - Blazor 请求被 CORS 策略阻止
- javascript - Moongose 查找功能不适用于变量
- php - 如何在特定页面或 URL 上执行特定代码
- javascript - 数组javascript中的奇数到偶数
- sql - Laravel 将 Mysql 查询转换为 Eloquent
- typo3 - 如何在 Typo3 9.5.8 中设置 maxFileSize