我在 mobx + react 上有一个非常大的应用程序,其中许多组件在商店中调用相同的操作。例如,“删除照片”可以从照片列表或模式中调用。但是在执行我的操作之前,例如,显示一个确认模式......
我最终得到了这个解决方案,但看起来我正在将数据登录与视图逻辑混合在一起......
class PhotoStore {
@observable photos;
@action destroy(photo) {
if (currentUser.isGuest) {
modalStore.open('NoGuest')
return
}
modalStore.openConfirm(() => {
// some datalogic
api.delete('/photos/'+photo.id).then(() => {
notificationStore.showSuccess('your photo was deleted!')
})
})
}
}
const PhotoView = observer(({photo}) => {
return <div onClick={() => photoStore.destroy(photo)}>...</div>
})
你怎么了?可以去吗?
多谢!