Как я могу запустить свой useEffect с наивысшим приоритетом, чтобы сначала можно было обновить мое состояние, а затем выполнить дальнейшую обработку
Я хочу, чтобы мой топор ios часть сначала запускалась внутри useEffect, чтобы мое состояние могло сначала обновите, а затем я могу использовать это.
Вот ошибка: TypeError: Cannot read property 'id' of undefined
Когда я утешаю, он показывает, что состояния не обновлены, он содержит пустой массив
Вот мой код:
const initialState = {
staff: [],
isFetching: false,
hasError: false
}
const Staff = ({ setStaffid }) => {
const [states, dispatch] = useReducer(reducer, initialState)
console.log(states)
useEffect(() => {
dispatch({
axios.get("https://example.com/staff")
.then(response => {
console.log(response)
console.log(response.data)
dispatch({
type: "FETCHSUCCESS",
payload: response.data.access
});
})
.catch(error => {
console.log(error);
dispatch({
type: "FETCHFAILURE"
});
});
}, );
useEffect(() => {
const id = states.staff[0].id;
setStaffid(id);
}, []);
return (
<div>
</div>
);
};
export default Staff;