亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

離開并返回 ReactJS 頁面時保存道具

離開并返回 ReactJS 頁面時保存道具

米琪卡哇伊 2023-08-18 14:02:00
我有一個username屬性,已使用它從“登錄”路由傳遞到“產品列表”路由return <Redirect to={{    pathname: "/products",    state: username  }}/>  然后我有一個 <Link to={'/products/${product.id}'}>More info</Link>將我從“產品列表”發送到“單個產品”的方法。當我返回“產品列表”時<Link to={'/products'}>Back</Link>,用戶名消失了。有沒有辦法保留用戶名,以便當用戶登錄并在路線之間來回移動時,它會繼續被存儲?這是我希望存儲用戶名的“產品列表”路線的完整代碼:import React, {useState, useEffect} from 'react';import './Products.css';import {Link} from 'react-router-dom';function Products(props) {  const [products, setProducts] = useState([]);  useEffect(() => {    const fetchProducts = async () => {      const data = await fetch("https://example.com/products");        const products = await data.json();      console.log(products);      setProducts(products);    };    fetchProducts();  }, []);  let username = props.location.state;  return (       <div>       <p className = "HelloUser">Hello, {username}</p>      <p className = "ProductTitle">Our Selection</p>      <div className = "ProductGrid">        {products.map(product =>(        <div className = "ProductBox" key={product.id}>          <img className ="ProductImage" src={product.image} alt="did not load"/>          <p className ="ProductName">{product.name}</p>          <p className ="ProductDiscountedPrice">{"£" + (Math.round(product.discountedPrice * 100) / 100).toFixed(2)}</p>          <p className ="ProductPrice">{"£" + (Math.round(product.price * 100) / 100).toFixed(2)}</p>          <Link to={`/products/${product.id}`} className="MoreInfoButton">More info</Link>        </div>        ))}      </div>    </div>  )}export default Products;
查看完整描述

1 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

已解決:通過將用戶名屬性進一步傳遞給“單個產品”組件來解決它。這樣,當我返回“產品列表”時,用戶名就會保留。

或者更好地將用戶名存儲在 sessionStorage 中。


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號