如何将数据 totalAmount 从子组件传递到父组件再传递给另一个子组件?
How do I pass the data totalAmount from the child to parent to another child component again?
我有来自 cart.js 的 totalAmount
数据,我如何将它传递给父组件 (app.js),在那里我可以将它传递给另一个子组件(info.js)。我尝试将它从 Cart.js
传递给父级,它不会工作,这就是它会显示的内容:
Identifier 'totalAmount' has already been declared
codesandbox: https://codesandbox.io/s/add-to-cart-sampled-2-with-material-ui-table-pagination-with-reduced-cart-items-firebase-5id6gs?file=/src/Cart.js**strong 文本**
在cart.js
const Cart = ({ cartItems, handleCartClearance, handleRemove, handleAdd }) => {
const totalAmount = cartItems.reduce(
(price, item) => price + item.quantity * item.price,
0
);
return (
<div>
</div>
);
};
export default Cart;
在App.js
如何将 totalAmount
传递给 customerInfo
组件?
export default function App() {
return (
<div className="App">
<CustomerInfo cartItems={cartItems} />
<br />
<Cart
cartItems={cartItems}
handleCartClearance={handleCartClearance}
handleRemove={handleRemove}
handleAdd={handleAdd}
/>
</Stack>
</div>
);
}
CustomerInfo 组件:
const CustomerInfo = ({ cartItems }) => {
const handleSubmit = (e) => {
e.preventDefault();
console.log(firstName, number, "info");
console.log(cartItems, "cartItems, info");
//console the totalAmount here
};
return (
<Container style={{ padding: "12px" }}>
</Container>
);
};
export default CustomerInfo;
由于totalAmount的计算只基于cartItems,它是Cart的一个prop。我相信这不是 Cart 的责任来计算它,而是它的责任 parent.
我有来自 cart.js 的 totalAmount
数据,我如何将它传递给父组件 (app.js),在那里我可以将它传递给另一个子组件(info.js)。我尝试将它从 Cart.js
传递给父级,它不会工作,这就是它会显示的内容:
Identifier 'totalAmount' has already been declared
codesandbox: https://codesandbox.io/s/add-to-cart-sampled-2-with-material-ui-table-pagination-with-reduced-cart-items-firebase-5id6gs?file=/src/Cart.js**strong 文本**
在cart.js
const Cart = ({ cartItems, handleCartClearance, handleRemove, handleAdd }) => {
const totalAmount = cartItems.reduce(
(price, item) => price + item.quantity * item.price,
0
);
return (
<div>
</div>
);
};
export default Cart;
在App.js
如何将 totalAmount
传递给 customerInfo
组件?
export default function App() {
return (
<div className="App">
<CustomerInfo cartItems={cartItems} />
<br />
<Cart
cartItems={cartItems}
handleCartClearance={handleCartClearance}
handleRemove={handleRemove}
handleAdd={handleAdd}
/>
</Stack>
</div>
);
}
CustomerInfo 组件:
const CustomerInfo = ({ cartItems }) => {
const handleSubmit = (e) => {
e.preventDefault();
console.log(firstName, number, "info");
console.log(cartItems, "cartItems, info");
//console the totalAmount here
};
return (
<Container style={{ padding: "12px" }}>
</Container>
);
};
export default CustomerInfo;
由于totalAmount的计算只基于cartItems,它是Cart的一个prop。我相信这不是 Cart 的责任来计算它,而是它的责任 parent.