React Native не может прочитать базу данных Firebase - PullRequest
0 голосов
/ 21 марта 2020

Я не могу прочитать базу данных для вставки в «Текст». Я использую Redux

Json

DiasSemana
 |
 |__Quarta: "Test Program"
 |
 |__Quinta: "nothing"
 |
 |

Класс EstudoDia. js Я использовал mapStateToProps, подключаюсь и импортирую действия.

import React, { Component } from "react";
import { View, Text } from "react-native";
import { Actions } from "react-native-router-flux";
import { connect } from "react-redux";
import firebase from "firebase";
import { estudoDoDia } from "../actions/AutenticacaoActions";

export class estudoDia extends Component {
  componentWillMount() {
    //I've tried with 'this.props.quarta' and it didn't work
    props.estudoDia(props.quarta);
  }

  render() {
    return (
      <View>
        <Text>{props.quarta}</Text>
      </View>
    );
  }
}

const mapStateToProps = state => ({
  quarta: state.AutenticacaoReducer.quarta
});
export default connect(mapStateToProps, { estudoDoDia })(estudoDia);

типы. js

export const MATERIA_DO_DIA = 'materia_do_dia';

ActionReducer. js. Я импортирую типы и возвращаю полезную нагрузку

import { MATERIA_DO_DIA } from "../actions/types";

const INITIAL_STATE = {
  quarta: "T.I Program"
};

export default (state = INITIAL_STATE, action) => {
  console.log(action);
  switch (action.type) {
    case MATERIA_DO_DIA:
      return { ...state, quarta: action.payload };

    default:
      return state;
  }
};

AutenticacaoActions. js. Используется снимок

import firebase from "firebase";
import { Actions } from "react-native-router-flux";
import { MATERIA_DO_DIA } from "./types";

export const estudoDoDia = quarta => {
  return dispatch => {
    firebase.database
      .ref("/DiasSemana/Quarta")
      .once("value")
      .then(snapshot => {
        quarta = snapshot.val();
        dispatch({
          type: MATERIA_DO_DIA,
          payload: snapshot.val
        });
      });
  };
};

есть изображение в ссылке введите описание изображения здесь

спасибо, если вы можете помочь мне

1 Ответ

0 голосов
/ 21 марта 2020

Я благодарю всех вас за помощь, на случай, если я обнаружил, что проблема в методе estudoDoDia в AuthenticationActions. js, я внес это изменение, и оно заработало

export const estudoDoDia = (quarta) => {    
    return dispatch => {

        firebase.database().ref('DiasSemana/Quarta').once('value', function (snapshot) {
            console.log(snapshot.val())
            quarta = snapshot.toJSON();

 dispatch(
{
    type: MATERIA_DO_DIA,
    payload: quarta
})  
})
 }
}

Внутри, как только я сделал это вызвало функцию, передавающую snapshop как параметр, и это работало. Я благодарю вас за вашу помощь и спасибо всем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...