Noch einmal, ich bin mit einem sehr häufigen Fehler konfrontiert "Cannot read property 'map' of undefined"
. Ich habe eine erste Liste von Artikeln (Filme), die richtig in einem <ul><li></li></ul>
laden. Nach dem Senden meiner Aktion durch Klicken auf meine Schaltfläche tritt der Fehler jedoch auf. Ich kann den Status tatsächlich in meinem Redux-Entwicklungstool (sogar mit dem Fehler) sehen, aber ich kann auch sehen, dass sich die Änderung nicht auf meinen Geschäftszustand in meinem Reaktionstool auswirkt.Wie gehe ich mit "Kann nicht lesen Eigenschaft Karte von undefined" reagieren/redux
So, hier ist mein Minderer:
export default function moviesReducer(state = {items}, action) {
if(action.type === 'SET_MOVIES_FILTER') {
return update(state.items, {$splice: [[1,3]]})
}
return state;
}
Hier ist meine Artikelliste (von hier post):
let items = [{
title: 'Mad max',
year: 2015,
rating: 8,
genre: 'fantasy',
}, {
title: 'Spider man 2',
year: 2014,
rating: 7,
genre: 'fantasy',
}, {
title: 'Iron man 3',
year: 2013,
rating: 7,
genre: 'fantasy',
}, {
title: 'Dumb and Dumber To',
year: 2014,
rating: 5,
genre: 'comedy',
}, {
title: 'Ted 2',
year: 2015,
rating: 6,
genre: 'comedy',
}];
Hier ist meine Aktion:
export const SetMoviesFilter =() => {
return {
type: 'SET_MOVIES_FILTER'
};
};
Und hier ist Meine Komponenten:
const movieTable = ({testmovie, movieTable }) => {
return (
<div>
<button onClick={movieTable}>testbutton</button>
<ul>
{testmovie.map((m, i) =>
<li key={i}>{m.year} - {m.title}.({m.genre}) - {m.rating}</li>
)}
</ul>
</div>)
}
function mapStateToProps(state) {
return {
testmovie: state.moviesReducer.items
};
};
const mapDispachToProps = (dispatch) => {
return {
movieTable:() => {dispatch (SetMoviesFilter());
},
};
};
const AppMovie = connect(mapStateToProps, mapDispachToProps)(movieTable);
Wo liege ich falsch? was soll ich machen ? Ich weiß nicht, ob es verwandt ist, aber ich kann meine jsbin nicht funktionieren lassen.
danke.
testmovie ist undefiniert. Sie können einen Debugger in Ihren Code einfügen und die Chrome-Entwicklungstools öffnen, um sie zu untersuchen. Fügen Sie 'debugger;' auf der ersten Seite Ihrer MovieTable-Funktion hinzu und es wird in dieser Zeile angehalten, wenn Sie die Dev-Tools in Chrome geöffnet haben. –
hum ... Ich verstehe nicht. Ich hatte keinen Fehler von testmovie undefined. . {M.title} ({m.genre - kann ich eigentlich die Liste der Filme mit der Kartenfunktion '
\t \t \t {testmovie.map ((m, i) =>- {m.year} Anzeigen sehen }) - {m.Bewertung}
}} \t \t \t
'Ich habe nur die 'Karte' von undefinierten Fehler, wenn Sie auf die Schaltfläche klicken. –Das ist der einzige Ort in Ihrem Code, wo Sie map verwenden. Der Fehler kann von redux kommen oder reagieren? Sie können den Stack-Trace in der Konsole betrachten, um eine Vorstellung davon zu bekommen, wo der Fehler sein könnte und was ihn verursacht. Sie können den Fehler erweitern, indem Sie in der Konsole darauf klicken und den Stack-Trace anzeigen. –