Если вы заявляете о реализации IState, вам нужно будет инициировать каждое свойство IState (на основе вашей логики), поскольку свойства в IState не помечены как необязательные.
Пример псевдокода:
public constructor(props: IGoodsProps) {
const {status} = this.props
super(props);
this.state ={
Status: status,
DisableBasicForm: status.Status === 'yourValue',
... // initialize here
}
}
Если у вас есть какое-то значение по умолчанию для вашего состояния, переданного как реквизит, вы можете использовать декоратор объекта:
public constructor(props: IGoodsProps) {
const {status} = this.props
super(props);
this.state ={
...status,
DisableBasicForm: status.Status === 'yourValue', // just overwrite this property with your logic
}
}
Вы также можете инициализировать ваше состояние вне конструктора:
class Component extends React.Component<Props, State> {
state: State = {
Status: 'value',
... // initialize here
}
constructor(props: Props) {
...
}
Еслиу вас есть общая логика для установки вашего состояния, и вы не хотите повторяться, вы можете оценить, используя React.useState
, но ваш компонент должен быть функцией.