im ein einfaches Portfolio machen mit reagieren, redux und -redux thunk .Das Ziel ist, Daten von Feuerbasis zu fangen und es auf meinem trabalhos.js anzuzeigen Komponente.Reagieren - Redux - Integrieren Firebase-Datenbank in meiner App
Ich weiß nicht, wie Sie die Daten an meine Komponente weitergeben. Könnte mir jemand helfen? Dank
Heres meine Aktion
import Firebase from 'firebase';
import { FETCH_DATA } from './types';
var firebase = require("firebase/app");
require("firebase/database");
var config = {
apiKey: "AIzaSyDi3f9pSGH833Hq3TBzibCK1SbPOheiGmE",
authDomain: "portofoliofirebase.firebaseapp.com",
databaseURL: "https://portofoliofirebase.firebaseio.com",
storageBucket: "portofoliofirebase.appspot.com",
messagingSenderId: "656734450041"
};
firebase.initializeApp(config);
var data = firebase.database().ref();
export function fetchData(){
return dispatch => {
data.on('value', snapshot => {
dispatch({
type: FETCH_DATA,
payload: snapshot.val()
});
});
};
}
Heres meine Reducer
import { FETCH_DATA } from '../actions/types';
export default function(state = {}, action) {
switch(action.type){
case FETCH_DATA:
return action.payload;
}
return state;
}
Heres mein rootReducer
import { combineReducers } from 'redux';
import fetchReducer from './fetch_reducer';
const rootReducer = combineReducers({
fetch: fetchReducer
});
export default rootReducer;
Heres meine trabalhos.js Komponente
import React, { Component } from 'react';
import { connect } from 'react-redux';
import * as actions from '../actions';
class Trabalhos extends Component {
componentWillMount(){
this.props.fetchData();
}
renderList(){
return(
<li>
</li>
)
}
render(){
return (
<div>
<div className="trabalhos">
<div className="trabalhos_caixa">
<div className="row">
<div className="col-xs-12">
<ul className="no_pad">
{this.renderList()}
</ul>
</div>
</div>
</div>
</div>
</div>
);
}
}
function mapStateToProps(state){
return { fetch: state.fetch };
}
export default connect(mapStateToProps, actions)(Trabalhos);
Vielen Dank!
danke für die Hilfe! Wenn ich meine Aktion trete, kann ich die Informationen sehen, die von der Datenbank kamen, so dass ich die Informationen in meinem Reduzierer bekomme, jetzt ist es schwierig, diese Daten auf meiner Komponente zu präsentieren, ich bekomme den Fehler - Uncaught TypeError: this.props. fetch.map ist keine Funktion (...) - kannst du mir helfen? –
Sicherlich, die Daten sind kein Array, sondern mehr ein Objekt. Sie müssen console.log die Daten und herausfinden, wie Sie mit diesem Typ umgehen. Innerhalb Ihrer Komponente nur 'console.log (this.props)' und lassen Sie mich wissen, welche Art von Daten ist – EQuimper