我正在为一个客户端开发一个在线商店,我需要在子级和父级之间传递数据以更新购物车。一切都很好,我只是想知道这是否会影响性能。有办法解决这个问题吗?下面是我所做的一个模拟示例:
const Parent = () => {
const [cart, setCart] = useState([])
function changeCart(newCart){
setCart(newCart)
}
return(
<Child cartFunction = {changeCart} cart = {cart}/>
)
}
const Child = (props) => {
const [cart, setCart] = useState(props.cart)
function changeCart(newcart){
setCart(newcart)
props.cartFunction(cart)
}
return(
<button onClick = {() => changeCart(["Apples", "Oranges"])>Add Fruit</button>
)
}
这个系统有什么问题吗?
两个想法:
- 您的子组件需要保持自己的状态吗?(这是父购物车状态的复制(
- 函数
changeCart
是不必要的,您可以传递setCart
,或者将所有内容都更改为useReducer
作为选项