Могу ли я использовать useReducer для возврата компонента как сложного состояния?
useReducer всегда используется для управления объектом данных как состоянием, после изменения состояния компонент будет перерисован. Преимущество возврата компонента из useReducer заключается в том, что мы можем поместить всю логику в функцию редуктора, и нет необходимости основываться на изменении логики состояния для визуализации конкретного.
Я не хочу писать такой код:
() => {
const [state, dispatch] = useReducer((prevState, action) => {
const {type, payload} = action;
switch(type) {
case 'loaded':
return {...prevState, isLoading: false};
case 'loading':
return {...prevState, isLoading: true};
default:
return prevState;
}
}, {isLoading: true});
return <>
{state.isLoading && <Loading />}
{!state.isLoading && <DoSomething />}
</>
}
Могу ли я сделать:
() => {
const [state, dispatch] = useReducer((prevState, action) => {
const {type, payload} = action;
switch(type) {
case 'loaded':
return <DoSomething />;
case 'loading':
return <Loading />;
default:
return null;
}
}, {isLoading: true});
return <>
{state}
</>
}