У меня есть модель дерева состояний Mobx, которая слишком длинная, и я хотел бы разделить ее на несколько файлов javascript.
Вот демонстрация некоторого кода:
///file1.js
import { types } from "mobx-state-tree";
export const ExampleModel = types
.model("Example", {
id: types.identifier,
name: types.optional(types.string, ""),
anotherName: types.optional(types.string, ""),
})
.views(self => ({
get test() {
return "test"
}
}))
.views(self => ({
get anotherTest() {
return "anotherTest"
}
}))
.actions(self => ({
setName(name) {
self.name = name
}
}))
.actions(self => ({
setAnotherName(name) {
self.anotherName = name
}
}))
Я хочу разделить это на два файла, например:
///file1.js
import { types } from "mobx-state-tree";
export const ExampleModel = types
.model("Example", {
id: types.identifier,
name: types.optional(types.string, ""),
anotherName: types.optional(types.string, ""),
})
.views(self => ({
get test() {
return "test"
}
}))
.actions(self => ({
setName(name) {
self.name = name
}
}))
///file2.js
import { ExampleModel } from "./file1.js";
ExampleModel.views(self => ({
get anotherTest() {
return "anotherTest"
}
})).actions(self => ({
setAnotherName(name) {
self.anotherName = name
}
}))
Здесь вы видите, что я пытаюсь переместить представление и действие в отдельный файл javascript. Я ожидаю, что мне нужно сделать какой-то импорт и экспорт между этими двумя файлами, но я не могу понять, как это сделать.
Я знаю, что Mobx State Tree имеет функции создания, как показано здесь:
https://nathanbirrell.me/notes/composition-mobx-state-tree/
Но я предпочитаю что-то более простое, чем это ... Я не хочу настраивать несколько моделей, мне просто нужна возможность распределить модель по нескольким файлам javascript.