如何使用React Hook在Provider中发送ref,ExampleRef.current返回null?应该返回ID为Example1的DOM元素
创建上下文
const ExampleContext = React.createContext({});
这是提供商
const ExampleProvider = ({
children
}:{
children: React$Node
}) => {
const ExampleRef = useRef(null)
return(
<ExampleContext.Provider ref={ExampleRef} value={ExampleRef.current}>
{children}
</ExampleContext.Provider>
);
};
class Example1 extends PureComponent<{...}> {
static ExampleProvider: any
static contextType = ExampleContext;
render() {
return(<div id={Example1}>...</div>)
}
};
Object.assign(Example1, { ExampleProvider })
使用提供商
class Example2 extends PureComponent<{...}> {
render() {
return(
<Example1.ExampleProvider>{...}<Example1.ExampleProvider>
)
}
};
如果添加DIV,ExampleRef.current返回正确的值,但我不想在另一层添加DIV
return(
<div ref={ExampleRef}>
<ExampleContext.Provider value={ExampleRef.current}>
{children}
</ExampleContext.Provider>
</div>
);