现在有一个Modal子组件,需要父组件控制显示隐藏,同时子组件也可以控制隐藏。
技术描述:
子组件部分代码:
interface DataHelperProps {
visible: boolean;
title: string;
}
const IndexPage: React.FC<DataHelperProps> = ({ visible, title }) => {
const { TabPane } = Tabs;
const { Search } = Input;
const [modelVisible, setModelVisible] = useState(visible);
debugger
console.log(modelVisible);
return (
<Modal
visible={modelVisible}
title={title}
width={900}
>
</Modal>
);
};
export default IndexPage;
父组件点击按钮重新传入 visible
为 true, 子组件并没有显示。
我打印下了 modelVisible
const [modelVisible, setModelVisible] = useState(visible);
debugger
console.log(modelVisible);
发现visible 此时为ture ,界面也重新render了,但是modelVisible 为false。
也就是说useState并没有随着属性的改变重新赋值
监听下属性,当属性改变的时候,重新复制state 。 缺点这样会多刷新一次
useEffect(()=>{
setModelVisible(visible)
},[visible])
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有