@veteral

Как инициализировать состояние при первой загрузке компонента React?

Здравствуйте!
Недавно начал изучать 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?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы