JSX на самом деле не возвращает HTMLElement
, он возвращает функцию рендеринга, поэтому вы в основном пытаетесь сделать это:
const canvas = function(props, createElement) { /* render canvas*/}; // forgot the ordering of renderFn args... sue me
canvas.getContext('2d');
Лично я использую JSX с Vue, и в в случае Vue, если вы хотите сделать что-то подобное, короткий ответ - да, вам придется подождать, пока он будет отрендерен, и затем использовать DOM, чтобы получить доступ к HTMLElement
, созданному функцией рендеринга JSX. .
Надеюсь, кто-то с опытом в React подтвердит, что это так, или предоставит более точный ответ с учетом вашего конкретного c варианта использования с React.