- 状态提升原理:
- 由于子组件A和子组件B是兄弟组件关系,无法直接通信。通过将共享状态提升到它们最近的共同父组件中,使得父组件可以控制状态,并通过props将状态和修改状态的函数传递给子组件A和子组件B。
- 关键代码示例:
import React, { useState } from'react';
const ParentComponent = () => {
const [isComponentBVisible, setIsComponentBVisible] = useState(false);
const handleToggleComponentB = () => {
setIsComponentBVisible(!isComponentBVisible);
};
return (
<div>
<ChildComponentA onToggle={handleToggleComponentB} />
{isComponentBVisible && <ChildComponentB />}
</div>
);
};
export default ParentComponent;
import React from'react';
const ChildComponentA = ({ onToggle }) => {
return (
<button onClick={onToggle}>
点击修改子组件B的显示状态
</button>
);
};
export default ChildComponentA;
import React from'react';
const ChildComponentB = () => {
return (
<div>
这是子组件B
</div>
);
};
export default ChildComponentB;