Ich erstelle eine Komponente, die den Zustand mit Redux Architektur behandelt (ja, das ist wahrscheinlich per Definition schlecht, weil eine Komponente den Status an die App aber sowieso delegieren sollte).Wie erhalte ich den letzten Aktionstyp, der vom Geschäft selbst im Geschäft ausgelöst wird?
Diese Komponente akzeptiert verschiedene Requisiten. Mein Problem kommt, wenn ich einen Rückruf behandeln muss. Nehmen wir ein praktisches Beispiel, um dies besser darzustellen.
Nehmen wir an, wir brauchen eine Komponente wie <App onSubmit={() => {}} />
.
Wir konnten Shop erstellen, wenn die Komponente bekommt montieren, so werden alle inneren Komponenten können Aktionen versenden/abonnieren Änderungen/etc.
Der Versuch könnte sein, eine Aktion namens submit()
zu haben. Auf diese Weise der Speicher wird wissen, dass es eine Änderung so jeder Abonnent anzuwenden wissen und jemand wird diese onSubmit Rückruf nennen.
So würde der Code wie folgt aussehen:
class App extends Component {
constructor (props) {
super(props)
this.subscriber = this.subscriber.bind(this)
}
componentWillMount() {
this.store = createStore()
this.store.subscribe(this.subscriber)
}
subscriber (action) {
if (action.type === 'submit')
this.props.onSubmit()
}
render() {
return (
<Provider store={this.store}>
<FooComponent />
</Provider>
)
}
}
Das Problem, dass, obwohl subscriber
auf versandt jede Aktion aufgerufen wird, wissen Teilnehmer kann nicht das, was die letzte Aktion geschickt war. Es gibt also keine Möglichkeit zu wissen, wann Sie anrufen sollen: onSubmit
.
- Wie können wir
subscriber
verwenden, um Änderungen im Geschäft zu erfahren? - Sollte ich aufhören, eine Redux-Architektur hier zu versuchen?
Ich meinte nicht "die letzte Aktion" als das. Ich möchte nur alle abgeordneten Aktionen bekommen, wie ich es in den Reduzierern mache. Der Punkt ist, dass es keine Zustandsänderung geben wird, wenn das passiert, ich möchte nur wissen, dass ein "Ereignis" ausgelöst wurde. – carlesba