База данных Firebase обновляет то же значение - PullRequest
0 голосов
/ 20 марта 2019

Я новичок в базе данных и firebase, я работаю над обновлением базы данных firebase.Но когда я обновляю firebase, он обновляет только первое значение, не меняя другое значение.

Это часть editMenu, из которой отображается меню и которая имеет возможность редактировать и удалять меню.

contentMenuKeys.map(t=>{
              // if (t === this.state.Appetizer)

              return(
                <div className="text-center">
                  <h4>{t}</h4>

                  <div className="row">
                    {Object.keys(this.props.menu[t]).map(menu=>{
                      return(

                      [this.props.menu[t][menu]].map(item=>{
                        return(
                          <div className="col-md-6 menuItems" >
                            <div className="textM d-flex">
                              <div className="one-half">
                                <h3>{item.Name}</h3>
                                <p><span>{item.Description}</span></p>

                              </div>
                              <div className="one-forth">
                                <span className="price">${item.Price}</span>
                                <p><span>
                                  <button type="button" className="btn btn-primary" data-toggle="modal" data-target="#MenuEditModal">Edit</button ><MenuEditForm Menu_Type={t} Name={item.Name}Description={item.Description}  Price={item.Price}iID={menu} rID={queryString.parse(this.props.location.search).id }/>{"   "}
                                  <button  type="submit" onClick={()=>{this.props.deleteMenu({rID:queryString.parse(this.props.location.search).id,Menu_Type:t,iID:menu})}} className="btn btn-danger ml-2">Remove</button>
                                </span></p>
                              </div>
                            </div>
                          </div>
                        )

И компонент menuEditform, имеющий форму для редактирования. Menu

import React,{Component} from 'react'
import {connect} from "react-redux"
import propTypes from "prop-types"
import { editMenu } from "../../actions/addMenu"



export class MenuEditForm extends Component {
    state={
        Name:"",
        Description: "",
        Price:"",
        Menu_Type:"",
        rID:""
    }

    static propTypes={
        editMenu: propTypes.func.isRequired

    }


    onChange=e=> this.setState({[e.target.name]:e.target.value});


    onSubmit=e=>{

        e.preventDefault();

        const { Name, Description, Price, rID, Menu_Type } = this.state;
        const menu = { Name, Description, Price, Menu_Type, rID, iID:this.props.iID };

        this.props.editMenu(menu);
        this.setState({
            Name:"",
            Description: "",
            Price:"",
            Menu_Type:"",
        });

    }
    componentDidMount(){
        this.setState({rID:this.props.rID,iID:this.props.iID,Menu_Type:this.props.Menu_Type})
      }


    render(){
        const {Name, Description, Price, Menu_Type}=this.state;

И это функция editMenu

export const editMenu =(item) =>(dispatch)=>{
    axios
        .post("/api/database/editMenu", item)
        .then(res => {
            dispatch({
                type:EDIT_MENU,
                payload:res.data

            });
        })
        .catch(err=>
            dispatch(returnErrors(err.response.date,err.response.status)));


};

И это часть Firebase

def editMenu(request):   
    db=credentials().database()
    mType = request['Menu_Type']
    rID=request['rID']
    iID =request['iID']
    print(request)
    request.pop("Menu_Type")
    request.pop('rID')
    request.pop('iID')




    return db.child('Restaurants').child(rID).child("Menu").child(mType).child(iID).update(request)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...