【发布时间】:2020-05-10 20:19:56
【问题描述】:
我有两个具有相同类和不同 ID 的按钮。我希望在单击按钮时将新商品添加到购物车中。
<body>
<div id="account"></div>
<button class="add-to-cart" id="1234">
Add to cart
</button>
<button class="add-to-cart" id="1534">
Add to cart 2
</button>
<script src="js/index.js"></script>
</body>
react 组件的状态管理部分看起来像
const [cart, setCart] = useState([])
useEffect(() => {
const addToCartButtons = document.querySelectorAll('.add-to-cart')
addToCartButtons.forEach(button => {
button.addEventListener('click', e => {
setCart(() => [...cart, button.id])
})
})
}, [])
每次单击按钮时,都会形成一个新数组,其中仅包含一个新值,而不是展开购物车的先前值并添加新值。
【问题讨论】:
-
为什么要在 React 应用程序之外渲染按钮?
-
@JMadeline 因为我想响应只处理应用程序的购物车部分,并在 vanilla js 中有电子商务产品的详细页面
标签: javascript reactjs react-hooks