I'm doing something like the following
(https://stackoverflow.com/a/57847874/433570)
const LowerCard = (props) => {
let { review_meta, step } = props
const [component, setComponent] = useState('');
const {state, editDispatch} = useContext(ReviewMetaEditCardDispatch);
useEffect(() => {
// https://stackoverflow.com/a/57847874/433570
const setDynamicComponent = async () => {
let DynamicComponent
switch(state.step) {
case 'title':
DynamicComponent = await import('review/react/components/review-meta-edit-card/step/title')
break
}
if (DynamicComponent) {
setComponent(DynamicComponent.default)
}
}
setDynamicComponent()
}, []);
if (!component) {
return null
}
return (
<View>
<component/>
</View>
)
}
The above code works, but when I remove []
at the useEffect
call, it results in
index.js:1 Warning: Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function.
I'm guessing it's complaining you shouldn't call setComponent
(which is a hook) inside useEffect
.
How do I overcome this?