博客 / 詳情

返回

React hook 中connect和forwardRef連用會導致傳入子組件的ref失效

let Component = (props)=>{
    const {refInstance} = props;
    //  只要是實例都行useForm和useRef創建的都可以
    const [form] = Form.useForm();
    useImperativeHandle(refInstance,()=>({
       submit:()=>{
          form.submit();
       }
    }));
    return (
       <div>Hello Word</div>
    )
};
Component = connect(xxx, xxx)(Component);
//注意:這裏不要在Component上使用ref;換個屬性名字比如refInstance;不然會導致覆蓋
export default React.forwardRef((props,ref) => 
    (<Component  {...props}  refInstance={ref} />));

查閲connect後發現使用connect的第四個參數也可實現

export default connect((state) => {
  return {
    list: state.list,
  }
}, null, null, { forwardRef: true })(C2)
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.