gpt4 book ai didi

javascript - 处理两个完全独立的 React 组件之间的数据

转载 作者:行者123 更新时间:2023-12-03 01:33:26 25 4
gpt4 key购买 nike

我正在用 React 编写的部分重建和替换旧电子商务系统产品页面的部分。我没有重写整个事情,而是逐个组件地进行,稍后在项目中我将以更传统的方式连接它。但目前还只是一部分。

我目前正在尝试弄清楚如何处理两个组件(ProductList 和 Cart)之间的数据。这两个组件位于产品页面上完全不同的位置。如果我在 ProductList 中按“添加到购物车”,我希望购物车能够对该事件使用react,并按“购物车”中的“清空购物车”以触发 ProductList 中的更改。

这些组件不会是同级组件。

应用程序的基本结构:

HTML:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div>
<!-- Lots of other stuff, PHP etc... -->
<div id="list"></div>
<!-- Lots of other stuff, PHP etc... -->
</div>
<!-- Lots of other stuff, PHP etc... -->
<div id="cart"></div>
<script src="static/js/app.js"></script>
</body>
</html>

Javascript 组件:

import React from "react";
import ReactDOM from "react-dom";

import List from "./components/List";
import Cart from "./components/Cart";

ReactDOM.render(
<List />,
document.getElementById('list')
);

ReactDOM.render(
<Cart />,
document.getElementById('cart')
);

由于两者都不是共同祖先的子代,我该如何以良好的方式处理组件通信?

最佳答案

一种方法是使用 Redux 库,https://redux.js.org/basics/usage-with-react它可以有一个用于购物车商店的 reducer ,List 和 Cart 组件应该用容器组件包装,并与购物车商店连接。

此外,您可以使用react 16.3版本中添加的上下文API https://medium.freecodecamp.org/an-introduction-to-react-16-3-context-api-basics-53382372dc35

我想说,对于这个问题,使用 redux 的解决方案更可取。

关于javascript - 处理两个完全独立的 React 组件之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com