我可以使用 React Context API 来管理 的全局状态itemsInCart,允许Product更新上下文,并且只能Nav使用和重新渲染。我不想在更改时重新渲染整个应用程序。
阅读 React 文档,我看到上下文用户需要在提供者的下游,所以不确定这是否可行
代码(大大简化):
function NavBar () {
const [itemsInCart, setItemsInCart] = useState(0)
return (
<button onClick={openCart}>{itemsInCart}</button>
)
}
function Product() {
function incrementCart () {
???
}
return (
<button onClick={() => incrementCart}>add product to cart</button>
)
}
function App () {
return (
<NavBar/>
<Router>
<Product/>
</Router>
)
}