我想在我的页面中添加路由器,以便在组件之间路由。我使用交换机改变之间的路由,但它抛出了一个错误,因为交换机是不导出的反应路由器的多玛。如果这是反应版本的问题,我想知道如何更改代码,以便在组件之间进行更改。
// import React from 'react';
// import Products from './components/Products/Products';
import { commerce} from './lib/commerce';
import {Products,Navbar, Cart} from './components';
import { useState , useEffect} from 'react';
import { BrowserRouter as Router, Switch , Route } from 'react-router-dom';
// import { Cart } from '@chec/commerce.js/features/cart';
const App=()=> {
const [products,setProducts] = useState([]);
const [cart,setCart] = useState({});
const fetchProducts = async ()=>{
const {data} = await commerce.products.list();
setProducts(data);
}
const fetchCart = async () => {
setCart(await commerce.cart.retrieve())
}
const handleAddToCart = async (productId, quantity) => {
const item=await commerce.cart.add(productId,quantity);
setCart(item.cart);
}
useEffect(()=>{
fetchProducts();
fetchCart();
},[]);
console.log(cart)
// console.log(products);
return (
<Router>
<div>
<Navbar totalItems={cart.total_items}/>
<Switch>
<Route exact path="/">
<Products products={products} onAddtoCart={handleAddToCart}/>
</Route>
<Route exact path="/cart">
<Cart cart={cart}/>
</Route>
</Switch>
</div>
</Router>
);
}
export default App;发布于 2022-01-07 02:46:09
在新版本中,它被重命名为Routes。
更新:正如Drew所指出的:
它没有被重命名,它在
react-router-domv6中被删除了。Routes组件是它的逻辑继承者,一个准替代者,但功能不同。不是一对一的交换。
虽然做下面这样的事情仍然对你有好处。尽管如此,德鲁提出了一个重要的观点,因为两者之间存在着分歧。
import { Routes as Switch } from 'react-router-dom';https://stackoverflow.com/questions/70615999
复制相似问题