我有一个父组件"项目";以及子组件";订单";。
项目具有一个按钮,该按钮切换是否";订单";显示。如果显示book,它会将获取的详细信息作为道具传递给Order组件,以及用于切换其打开或关闭的功能。
在将道具添加到";订单";,拨动开关工作得很好。添加道具后,道具处理可以正常工作,但现在功能不起作用了。我做错了什么?
const Item = () => {
const [item, setItem] = useState('');
const [order, setOrder] = useState('');
//Api call to get item
const orderOpenClose = () => {
setOrder(!order);
};
return (
<>
<div onClick={orderOpenClose}>
<Button text="Order"></Button>
</div>
{order ? <Order acc={item} onChildClick={orderOpenClose}/> : ""}
</>
)
}
const Order = (props, { onChildClick }) => {
const { item } = props;
return (
<>
<div onClick={onChildClick}>
x
</div>
<p>{item.title}</p>
)
}```
这个(props, { onChildClick })
语法不正确,你可以破坏props
,也可以将它们作为一个对象传递,但不能同时传递,所以你可以执行
const Book = ({acc, onChildClick })
或
const Book = (props) => {
const { acc,onChildClick } = props;