我正在尝试将节点从 ref 传递到上下文。但是因为我在第一次渲染后没有重新渲染,所以传递的节点是null
. 我考虑了两种变体(但我认为它们不是最好的):
通过
ref
而不是ref.current
. 但是在用例中,我将被迫使用类似的东西contextRef.current
而不是contextNode
.在
firstRender
获得ref.current
. 这似乎不是最优的。
什么是正确的(最好的?)方法?
import React, { createContext, createRef, useContext, useEffect } from "react";
import ReactDOM from "react-dom";
const Context = createContext(null);
const App = ({ children }) => {
const ref = createRef();
return (
<div ref={ref}>
<Context.Provider value={ref.current}>{children}</Context.Provider>
</div>
);
};
const Child = () => {
const contextNode = useContext(Context);
useEffect(() => {
console.log(contextNode);
});
return <div />;
};
const rootElement = document.getElementById("root");
ReactDOM.render(
<App>
<Child />
</App>,
rootElement
);