jungs.Async-Aktionsersteller sendet keine Aktion wie erwartet
Ich habe den folgenden asynchronen Aktionsersteller, der einen anderen Aktionsersteller auslöst oder je nach aktuellem Status null
zurückgibt. Das Problem ist, dass es immer null
egal was der aktuelle Zustand ist zurückgibt.
// actions.js
export const loadPosts = category => (dispatch, getState) => {
const currentState = getState()
const posts = currentState.postsByCategory
const categoryPosts = posts[category]
const items = categoryPosts.items
if(items === []) {
return dispatch(fetchPosts(category))
}
return null
}
Wie Sie die Aktion Schöpfer auf den Wert sehen können, hängt fetchPosts()
Dispatching von items
gleich ein leeres Array ist. Ich teste es es einen anfänglichen Zustand mit der folgenden Struktur bereitgestellt:
// initialState
const initialState = {
postsByCategory: {
hot: {
isFetching: false,
items: []
}
}
}
Ich bin offensichtlich nicht die items
Eigenschaft angemessen Zugriff, aber ich kann nicht sehen, wo der Fehler in meinem Code. Ich teste dies mit Redux-Mock-Store, Erstellen einer Instanz eines MockStore und Bereitstellung von initialState
. Hoffe ihr könnt den Fehler in meinem Code genau lokalisieren. Vielen Dank im Voraus.
Hey Mann, es hat funktioniert. Vielen Dank! Ich verstehe einfach nicht den Unterschied zwischen === [] und .length === 0. Hat es etwas mit Array-Metadaten zu tun? Haben Sie Vorschläge für weitere Lektüre, um das besser zu verstehen? –