Я запутался, почему useState
не устанавливает переменную из ее аргумента, props
.
Фрагмент:
import React, { useState } from 'react';
const FormContainer = (props) => {
console.log('[FormContainer props]', props); // line 7
const [prevState, setPrevState] = useState(props);
console.log('[FormContainer]', prevState); // line 9
props
содержит объект, но хук не устанавливает prevState
. Это undefined
. Почему?
Телефонный код. Первый компонент представляет список. При щелчке строки в списке (сетке) этот компонент получает данные и отправляет их в качестве аргумента второму компоненту, FormContainer.
import React, { Component } from 'react';
import Table from './VehicleList';
import VehicleForm from '../FormContainer';
class Vehicles extends Component {
state = {};
...
render() {
return (
<div>
{this.state && this.state.vehicleList && (
<Table vehicleList={this.state.vehicleList} clicked={this.vehicleSelectedHandler} />
)}
{console.log('[Vehicles render selectedVehicle]', this.state.selectedVehicle)}
<VehicleForm vehicle={this.state.selectedVehicle} />
</div>
);
}
Из отладчика:
![Firefox dev tools](https://i.stack.imgur.com/0GB60.jpg)