Как импортировать переменную live let, установленную для функции? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь создать библиотеку пользовательского интерфейса для (P) React. Репо можно просмотреть здесь .

Функция настройки вызывается для запуска функций createElement / forwardRef. Они настроены так, чтобы переменные разрешались, чтобы к ним можно было получить доступ внутри других файлов. Этот вопрос относится к this и this . Переменные - это живые представления, но почему переменные с функциями не живые представления?

// setup.ts
let forwardRef
let createElement

function setup(createElementIn, { forwardRef : fw }) {
  forwardRef = fw
  createElement = createElementIn
}

В другой функции он импортируется так

// box.ts
import { forwardRef, createElement } from './setup'

// this works
function Box(props, ref){
  console.log('forwardRef', forwardRef) // correct function

  return createElement('div', { ...props, ...(ref && ref) })
}

// this does not work because forwardRef is undefined
export forwardRef ? forwardRef(Box) : Box

Окно вызывается так

import { useRef, createElement, forwardRef } from 'react'
import { Box, setup } from 'juhuui'

// this is called only once
setup(createElement, { forwardRef })

function Hello () {
  const myRef = useRef(null);

  return (<Box ref={myRef}>Hello</Box>)
}

Подскажите, пожалуйста, как мой код можно реструктурировать для работы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...