I'm following this design pattern from React-admin to define the parent Team resource,
but the useEffect hook is being called 4 times on every page refresh
The context provider is just to be able to pass the Teams list to a select in the layout, if I remove it, the same problem happens
Is this expected behaviour?
const AdminEnterprise = () => {
return (
<AdminContext
disableTelemetry
authProvider={authProvider}
dataProvider={dataProvider}
>
<TeamResources />
</AdminContext>
);
};
const TeamResources = () => {
const dataProvider = useDataProvider();
const [state, dispatch] = useReducer(teamReducer, {
loading : true,
teams : []
})
useEffect(() => {
//This is called 4 times on page refresh
console.log('querying user teams')
dataProvider.getList('userTeams')
.then(({data}) =>{
dispatch({
teams: data,
selected: data[0].id,
loading: false
})
})
.catch(error => {
dispatch({
error: error,
loading: false
})
})
}, [])
return (
<TeamContext.Provider value={[state, dispatch]}>
{state.loading? <></> : (
<AdminUI layout={MyLayout} loginPage={CustomLoginPage} theme={myTheme}>
<Resource name={`teams/${state.selected}/projects`} list={ProjectList} options={{label: 'Projects' }}/>
<Resource name={`teams/${state.selected}`} />
</AdminUI>
)}
</TeamContext.Provider>
)
}