如何使用React Hook在Provider中发送引用

时间:2019-11-15 10:14:10

标签: javascript reactjs react-hooks react-16

如何使用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>
 );

0 个答案:

没有答案