Reason 如何对React.Ref.t(Js.Nullable.t(';a))类型的值进行模式匹配
我试图以JS对象的形式访问DOM元素Reason 如何对React.Ref.t(Js.Nullable.t(';a))类型的值进行模式匹配,reason,reason-react,Reason,Reason React,我试图以JS对象的形式访问DOM元素 let navRef=React.useRef(Js.Nullable.null); 让宽度= 开关(Js.Nullable.toOption(navRef)){ |无=>0.0 |Some(nav)=>ReactDOMRe.domElementToObj(nav)##clientWidth }; 但是我在navRef的Js.Nullable.toooption中有一个类型eror 错误:此表达式的类型为React.Ref.t(Js.Nullable.t(
let navRef=React.useRef(Js.Nullable.null);
让宽度=
开关(Js.Nullable.toOption(navRef)){
|无=>0.0
|Some(nav)=>ReactDOMRe.domElementToObj(nav)##clientWidth
};
但是我在navRef的Js.Nullable.toooption中有一个类型eror
错误:此表达式的类型为React.Ref.t(Js.Nullable.t('a))
但需要类型为的表达式
Js.Nullable.t('b)=Js.Nullable('b)
React.Ref.t
是一种不透明类型,因此不能直接在其上进行模式匹配。但您可以使用React.ref.current
访问ref的值,然后对其进行模式匹配:
let navRef=React.useRef(Js.Nullable.null);
让宽度=
开关(Js.Nullable.toOption(React.Ref.current(navRef))){
|无=>0.0
|Some(nav)=>ReactDOMRe.domElementToObj(nav)##clientWidth
};