Не рендерится массив из MobxStore
Всем привет, использую "mobx": "^6.3.3", и"react": "^18.2.0",.
Есть стор:
projectList: Project[] = [];
constructor() {
makeAutoObservable(this);
}
get projectListLength() {
console.log(Array.isArray(this.projectList));
return this.projectList.length;
}
get projects() {
return this.projectList.slice();
}
getAll = async (type?: ProjectTypes) => {
const projects = await projectsService.getAll(type);
this.projectList = toJS(projects);
};
}
И есть компонент:
const [activeTab, setActiveTab] = useState<ProjectTypes>("all");
const projectsStore = new ProjectsStore();
const tabClickHandler = (key: ProjectTypes) => {
setActiveTab(key);
};
useEffect(() => {
const getAll = async () => {
await projectsStore.getAll(activeTab);
};
getAll();
console.log("PrS: ", projectsStore);
}, []);
return (
<>
<Header>
<PageHeader>Проекты</PageHeader>
<Search />
</Header>
<Tabs
tabs={tabs}
activeTab={activeTab}
tabClickHandler={tabClickHandler}
/>
<SelfTable columns={columns} data={projectsStore.projects} />
{projectsStore.projectListLength === 0 && <Empty />}
</>
);
});```
После вызова в useEffect у длина projectList 0 и ничего не рендерится.
Консоль показывает, что projectList - это прокси.
Ответы (1 шт):
Автор решения: Андрей Родин
→ Ссылка
const [projectStore] = useState(() => new ProjectsStore());
вот так инициализровал стор и всё заработало