关于react-hook组件用函数控制是否渲染的及时性问题。
需要大家帮看看用 findOverAllVisible && 这种形式控制的怎么让其创建,然后我要操作组件里面的属性或方法。
import React, { useEffect, useState, useRef, createRef } from 'react';
import ProfessionLayer from '../ProfessionLayer';
import FindOverAll from '../FindOverAll';
const MenuPanel: React.FC<Props> = (props) => {
const childRef = useRef(null);
const childRefPl = useRef(null);
const [findOverAllVisible,setFindOverAllVisible] = useState(false); // 全局查询显示开关
const onSearchv2 = (v: string) => {
setFindOverAllVisible(()=>{return true})
if (childRef.current) { //这个current没法找到,我查了文档是没有渲染,这里需要怎么处理?
childRef.current.handleChild(v);
}
}
const closeFindOverAll = () =>{
setFindOverAllVisible(()=>{return false})
if (childRefPl.current) { //这个current没法找到,我查了文档是没有渲染,这里需要怎么处理?
childRefPl.current.handleChild();
}
}
return (
<div className={styles.container}>
<div className={styles.containerTwo}>
<Search placeholder="综合查询" onSearch={onSearchv2} />
</div>
{!findOverAllVisible &&
<ProfessionLayer ref={childRefPl} treeChange={treeChange}></ProfessionLayer>
}
{findOverAllVisible &&
<div>
<Button onClick={closeFindOverAll} > 返回</Button>
<FindOverAll ref={childRef}></FindOverAll>
</div>
}
</div>
);
};