具体场景是:有一个公用弹窗组件(antd的Modal做的),显示隐藏是通过改变组件的state(visible:true显示/false隐藏)实现的。现在使用的时候用import引入该组件,引入后该如何改变组件的state使组件显示呢?比如点击按钮使组件显示
具体场景是:有一个公用弹窗组件(antd的Modal做的),显示隐藏是通过改变组件的state(visible:true显示/false隐藏)实现的。现在使用的时候用import引入该组件,引入后该如何改变组件的state使组件显示呢?比如点击按钮使组件显示
你的Modal这个公共组件,要受外界的控制是否显示,应该使用props而不是使用自己的state。
父组件调用:不管你使用hooks还是class,isShow都是父组件的state,把他传给你的Modal组件。
<MyModal
visible={isShow}
>
showModal = () => {
setVisible(true)
}
<Button onClick={showModal} />
MyModal组件
function MyModal(props){
if(!props.visible) return null;
return <div>MyModal</div>;
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读