【发布时间】:2021-02-02 08:29:30
【问题描述】:
我正在尝试使用 firebase 作为后端在您的订单页面中呈现订单列表,并作为前端做出反应。当我单击您的订单按钮时,它什么也不显示,刷新页面时它显示数据。我希望在不刷新页面的情况下显示数据。 这是我的以下问题的代码。
import React , {useState , useContext , useEffect} from 'react'
import { useParams } from 'react-router-dom'
import { JobContext } from '../../context/JobContext'
import { UserContext } from '../../context/UserContext'
import { db } from '../../Firebase'
import Order from './Order'
import './YourOrder.css';
import { Container, Row } from 'react-bootstrap';
import { IoIosShare } from "react-icons/io";
import { BsChevronRight } from "react-icons/bs";
import { Link } from 'react-router-dom'
import { PaymentContext } from '../../context/PaymentContext'
import { OrderContext } from '../../context/OrderContext'
const YourOrder = () => {
//window.location.reload(false)
const [user , setUser]=useContext(UserContext)
const [order , setOrder]=useContext(OrderContext)
const { userrid } = useParams()
const [payment , setPayment]=useContext(PaymentContext)
useEffect(() => {
var priceRef = db.collection("clients").doc(userrid).collection("jobDetails")
priceRef.orderBy("timestamp", "desc").get().then(snapshot=>{
setOrder(snapshot.docs.map((doc) => ({ jobdetailid: doc.id, ...doc.data() })))
})
}, [user , order])
return (
<div className="All_orders_main_container">
<h2 className="text-center mb-2">Your Orders</h2>
{order.length!==0 ?
order.map(item=>{
return item.payment_id!=="" ?<Link to={`/vieworder/${item.jobdetailid}/${userrid}`} >
<Container className="your-orders">
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 pl-0">
</div>
<div className="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 bordered">
<div className="row">
<div className="col-xl-2 col-lg-2 col-md-4 col-sm-4 col-4">
<img src={item.image} alt="graphic_design_ordered-img" className="order_img"/>
</div>
<div className="col-xl-9 col-lg-9 col-md-6 col-sm-6 col-6 details">
<p className="job_name">{item.Name}</p>
<p className="job_deliverydate">ordered on {item.orderDate}</p>
{/* <p className="job_share pt-1"><IoIosShare className="share_icon"/>Share this item</p> */}
</div>
<div className="col-lg-1 col-md-2 col-sm-2 col-2 open_icon text-right">
<BsChevronRight/>
</div>
</div>
</div>
</Container>
</Link>
: null
})
:
<h1 className="text-center" style={{color : '#c1c1c1', marginTop: 50}}>No Orders</h1>
}
</div>
)
}
export default YourOrder
请给我同样的指导
【问题讨论】:
-
嗨,
your order button在哪里? -
该按钮位于主页导航栏上,当有人点击该按钮时,它会将其重定向到您的订单页面
标签: javascript reactjs firebase developer-tools