0
我現在正在使自己熟悉React。我選擇了國家管理的mobx-state-tree。是否可以設置一個不會在React-Native中調用render()方法的類型? mobx狀態樹
因爲我在我的Android項目中使用了MVP模式,所以我會將相同的原理應用於mobx-state-tree。
我目前如何實施,它的工作原理。
但是,我想在模型中定義ScreenView實現。
有沒有辦法定義一個不觸發render()事件的模型類型?
我想要的結果:
const AuthScreenModel = types
.model('AuthStore', {
screen: types.enumeration('Screen', ['auth', 'verification', 'name']),
screenView: types.norefresh(ScreenViewInterface),
phoneModel: types.optional(PhoneModel, {})
})
我目前的解決方法:
const AuthScreenModel = types
.model('AuthStore', {
screen: types.enumeration('Screen', ['auth', 'verification', 'name']),
phoneModel: types.optional(PhoneModel, {})
})
.views((self: any) => {
self.screenView = null
return {
getScreenIndex(): number {
if (self.screen === 'verification')
return 1
if (self.screen === 'name')
return 2
return 0
}
}
})
.actions((self: any) => {
return {
setScreen(screen: string) {
self.screen = screen
},
setScreenIndex(screenIndex: number) {
self.screenIndex = screenIndex
},
setScreenView(screenView: AuthScreenView) {
self.screenView = screenView
},
swipeNext() {
if (self.screenView) {
self.screenView.scrollBy(self.getScreenIndex() < 2 ? 1 : 0)
}
},
swipePrev() {
if (self.screenView) {
self.screenView.scrollBy(self.getScreenIndex() > 0 ? -1 : 0)
}
}
}
})
const AuthScreenStore = AuthScreenModel.create({
screen: 'auth',
phoneModel: PhoneModel.create({
country: CountryModel.create({}),
phoneNumber: ''
})
})