Здравствуйте!
Недавно начал изучать React. Делаю свой небольшой проект и возникла такая проблема.
Есть такой код:
const Control = () => {
const [actionRow, setActionRow] = useState();
const { data,
getData } = useContext(DBContext);
useEffect(() => {
getData();
}, []);
const changeActionRow = (tr) => {
setActionRow(tr);
};
return (
<>
<HeaderData />
{
data.control &&
<Table>
<TableHeader title={tableTitle} />
<TableBodyControl
data={data}
actionRow={actionRow}
setActionRow={changeActionRow}
/>
</Table>
}
}
export const DBState = ({children}) => {
const initialState = {
data: {}
}
const [state, dispatch] = useReducer(DBReducer, initialState);
const getData = async () => {
const data = await request('/api/data');
dispatch({type: DATA, data});
}
return (
<DBContext.Provider value={{
data: state,
getData, setData
}}>
{ children }
</DBContext.Provider>
)
}
export const DBReducer = (state, action) => {
switch (action.type) {
case DATA:
return ({
...action.data
});
default: return state
}
}
Как при первой загрузке компонента Control инициализировать actionRow, т.е. получить первый элемент массива объектов data?