Javascript 如何将引用传递给使用onClickOutside(';react onClickOutside';)的HOC?
我对我的HOC使用Javascript 如何将引用传递给使用onClickOutside(';react onClickOutside';)的HOC?,javascript,reactjs,Javascript,Reactjs,我对我的HOC使用onClickOutside('react-onClickOutside'),但我无法传递此HOC的ref,我有如下情况,出现错误: const inputRef = useRef(); .... <SomeCompontnt inputRef={inputRef} items={items} onSelect={onSelect} value={selectedItem} /> .... export default onClic
onClickOutside('react-onClickOutside')
,但我无法传递此HOC的ref,我有如下情况,出现错误:
const inputRef = useRef();
....
<SomeCompontnt
inputRef={inputRef}
items={items}
onSelect={onSelect}
value={selectedItem}
/>
....
export default onClickOutside(forwardRef(
(props, inputRef) => <MyHoc inputRef={inputRef} {...props} />)
);
....
const inputRef=useRef();
....
....
导出默认onClickOutside(forwardRef(
(道具,inputRef)=>)
);
....
错误
未捕获的TypeError:无法读取的属性“isReactComponent”
未定义
在onClickOutside.render(react onClickOutside.es.js?7e48:325)
试试这个:
您可以在OnClickOutside演示MyHookClick控制台中看到MyHoc onClick输出
import React from "react";
import { render } from "react-dom";
import onClickOutside from "react-onclickoutside";
class OnclickoutsideDemo extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
const options = this.state.showOptions ? (
<MyHookClick
onClick={e => console.log(e)}
handleClickOutside={() => this.setState({ showOptions: false })}
/>
) : null;
return (
<div>
<span
onClick={() =>
this.setState({ showOptions: !this.state.showOptions })
}
>
Click Me
</span>
{options}
</div>
);
}
}
const MyHoc = React.forwardRef((props, ref) => (
<div ref={ref} onClick={e => props.onClick("HaHa")}>
Click Me to see HaHa in console !
</div>
));
const MyHookClick = onClickOutside(props => (
<MyHoc ref={props.inputRef} {...props} />
));
export default OnclickoutsideDemo;
render(<OnclickoutsideDemo />, document.getElementById("root"));
从“React”导入React;
从“react dom”导入{render};
从“react onClickOutside”导入onClickOutside;
类OnclickoutsideDemo扩展了React.Component{
建造师(道具){
超级(道具);
this.state={};
}
render(){
const options=this.state.showOptions(
console.log(e)}
handleClickOutside={()=>this.setState({showOptions:false})
/>
):null;
返回(
this.setState({showOptions:!this.state.showOptions})
}
>
点击我
{options}
);
}
}
const MyHoc=React.forwardRef((props,ref)=>(
props.onClick(“哈哈”)}>
点击我在控制台中看到哈哈!
));
const MyHookClick=onclickout(props=>(
));
导出默认onclickoutsidemo;
render(,document.getElementById(“根”));
您的代码甚至没有显示发生错误的属性isReactComponent,请提供更多信息。是否与此相关?答案已更新,请参见此处的答案输出