Reactjs API使用React Redux钩子重复调用?

Reactjs API使用React Redux钩子重复调用?,reactjs,api,redux,react-hooks,saga,Reactjs,Api,Redux,React Hooks,Saga,我将redux hooks saga与API集成,我想加载一次项目并监听更改,API不断被调用: import { loadProjects } from '../../store/actions'; useEffect(() => { props.loadProjects(); }, []); return (<React.Fragment>...</React.Fragment>) const mapStatetoProps = state =&

我将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);
此片段位于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();
从“/store”导入存储;
常量应用=(
);
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);
返回(
{userRoutes.map((route,idx)=>(
))}
);
}
常量mapStateToProps=状态=>{
返回{
布局:state.layout
};
};
导出默认连接(MapStateTops,null)(应用程序);

我们可以看到带有«项目列表»案例的减速机吗?如果
useffect
具有空依赖项,这意味着它仅在组件装载时触发一次。如果一次又一次地调用该组件,则表示该组件正在卸载并再次安装。什么是渲染此组件?(与先前请求的reducer代码一起)您需要使用mapDispatchToProps进行redux操作
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);