Не обновляется атрибут модели react

Рейтинг: 0Ответов: 1Опубликовано: 06.08.2023

у меня есть модель User с атрибутом name

export default class User {
    private name: string;
}

Также есть геттеры и сеттеры у класса. Есть компонент, которому в пропсах передается user

interface FrameProps {
    user: User;
}
interface FrameState {
}
export default class Frame extends React.Component<FrameProps, FrameState> {
    constructor(props: FrameProps) {
        super(props);
    }
    render() {
        let me = this;
        return (
            <div style={{marginTop: 180, display: "flex", alignItems: "center", justifyContent: "center"}}>
                <h1>{me.props.user.name.toString()}</h1>
            </div>
        )
    }
}

в App.tsx передаю как

function App() {
  return (
    <div className="App">
      <Frame user={new User()}></Frame>
    </div>
  );
}

Проблема заключается в том, что при обновлении имени в модели User, он не обновляется во Frame. И выводится всегда начально введенное имя, как я поняла, из-за того, что меняются только пропсы, но не атрибуты пропса. Как это можно изменить? Передавать нужно именно юзера.

Ответы

▲ 0

В итоге я сама нашла решение, нужно изменить класс Frame так:

{me.props.user.name.toString()}