2

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>
})

どうしたの?行ってもいいですか?

どうもありがとう!

4

2 に答える 2

0

それ以外の

notificationStore.showSuccess('あなたの写真は削除されました!')

オブザーバブルを追加して保存し、そこに変更することができます。あなたのモーダルコードは別の場所にあり、オブザーバーになる可能性があります

于 2016-11-03T06:44:27.237 に答える