react怎么让组件强制刷新--函数式高阶组件

export const wrapper = (innerComp)=>({updateStr, ...props})=>{
  const [forceUpdate,setfForceUpdate] = useState(true);
  useEffect(()=>{
    if(updateStr && xxx) {// xxx为搜索条件,视情况而定
      setfForceUpdate(false);
      setTimeout(() => {
        setfForceUpdate(true); 
      }, 0);
    }
  },[updateStr]);
  return forceUpdate?:null;// 条件?:null这样写是会重新渲染页面的
}

如果需要组件强制刷新的,使用这个组件作为函数,将原本的组件作为参数传进去就行了

b文件:

const defaultComp = (props:any) => {
  //...略
  return 
}
export const ForceUpdateXXComp:any = wrapper(defaultComp);

最后在主文件引入的是b文件,正确传参就行了

你可能感兴趣的:(react,强制刷新页面)